25

質問

Rails 3 (esp 3.1) アプリで RequireJS を使用したことがある場合、それはどのように機能しますか? 注意が必要な構成のトリックやその他の落とし穴はありますか?

バックグラウンド

Rails 3.1 の Sprockets ベースの Asset Pipeline で RequireJS を使用することを考えています。特に JavaScript コード用です。この選択の動機は 2 つあります。

  • JS クライアント側コードに RequireJS のモジュール管理を活用したいと考えています。
  • 私の JS ライブラリ コードを他のコンテキストで使用できるプリコンパイル システムが必要です。驚いたことに、Asset Pipeline プリコンパイラーは Rails に組み込まれた部分であり、Sprockets 自体の一部ではありません。

すべてのフィードバックに感謝します。

4

1 に答える 1

48

後世のために、この質問について私がたどり着いたのは次のとおりです。

  • RequireJS は、非同期モジュール定義API の実装を提供します。RequireJS のなぜ AMD なのか? ページでは、これを使用する理由について説明しています。

  • Sprockets と Rails 3 Asset Pipeline により、JavaScript/CoffeeScript コードの単純な構造化が可能になりますが、真のモジュール サポートは提供されません。たとえば、Sprockets には名前空間の制御はまったくありません。

  • jQuery (1.7 以降)、Underscore、Dojo、その他多数の主要なライブラリが AMD サポートを実装しています。他のいくつかの主要な JS ライブラリは、近い将来、AMD をサポートしているようです (Backbone.js など)。

RequireJS を統合する Rails アプリを作成することは確かに可能です。そのプロセスを簡素化するために、github で requirejs-rails gem を作成しました。これは、 r.jsを介した AMD ベースのコード用の簡単な構成とアセット パイプライン対応のプリコンパイルを備えています。現在のリリースは、次の方法で入手できます。

gem install requirejs-rails

于 2011-12-05T23:09:59.290 に答える