§RequireJS
RequireJS のウェブサイト曰く
RequireJS は、JavaScript ファイルであり、モジュールローダーです。ブラウザでの使用に最適化されていますが、他の JavaScript 環境で使用することもできます。RequireJS のようなモジュラースクリプトローダーを使用することで、コードの速度と品質が向上します。
現実問題としては、RequireJS を使って JavaScript をモジュール化できるということを意味しています。RequireJS は Asynchronous Module Definition と呼ばれる (この他に同様のアイディアが CommonJS に含まれている) 準標準 API を実装することで、これを実現しています。AMD を使うと、サーバサイドで 最適化 しつつ、 クライアントサイド で javascript のモジュールを解決してロードすることができます。サーバサイドの最適化では、モジュールは UglifyJS 2 を使って最小化され、結合されているかもしれません。
慣例により、RequireJS はモジュールロードの起点として main.js ファイルを要求します。
§デプロイ
RequireJS の最適化は一般的に、例えば start
, stage
または dist
タスクの実行時など、デプロイを行うときまでは実行されるべきではありません。
ビルドに WebJar を使用している場合、RequireJS 最適化プラグインは WebJar 内から参照されているあらゆる JavaScript リソースが jsdelivr CDN から参照されることを保証します。加えて、.min.js
ファイルが見つかった場合、これを .js
の代わりに使います。おまけに、html を変更する必要はありません!
§有効化と設定
Playjava
または PlayScala
プラグインを使っている場合、RequireJS の最適化は plugins.sbt ファイルにプラグインを追加するだけで有効にすることができます:
addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.7")
以下のように宣言して、このプラグインをアセットパイプラインに加えることができます (パイプラインにプラグインがひとつだけとした場合 - 必要に応じて 他の digest や gzip などをシーケンスに追加します):
pipelineStages := Seq(rjs)
RequireJS 最適化の標準的なビルドプロファイルが提供されており、ほとんどのプロジェクトにはこれで十分です。とは言え、どこまで設定できるか情報を得るために、プラグインのドキュメント を参照してください。
RequireJS は多くの作業を行うこと、そしてこの作業が Trireme によって JVM 内で実行されている場合、性能の観点から js-engine として Node.js を使うのがベストであることに注意してください。利便性のため、SBT_OPTS
に sbt.jse.engineType
プロパティを設定することができます。Unix の場合:
export SBT_OPTS="$SBT_OPTS -Dsbt.jse.engineType=Node"
どこまで設定できるか情報を得るために、プラグインのドキュメント を参照してください。
Next: 設定
このドキュメントの翻訳は Play チームによってメンテナンスされているものではありません。 間違いを見つけた場合、このページのソースコードを ここ で確認することができます。 ドキュメントガイドライン を読んで、お気軽にプルリクエストを送ってください。