§RequireJS
RequireJSのウェブサイトによると
RequireJSは、JavaScriptファイルおよびモジュールローダーです。ブラウザでの使用に最適化されていますが、他のJavaScript環境でも使用できます... RequireJSのようなモジュール式スクリプトローダーを使用すると、コードの速度と品質が向上します。
実際には、RequireJSを使用してJavaScriptをモジュール化できることを意味します。RequireJSは、Asynchronous Module Definitionと呼ばれる半標準APIを実装することでこれを実現します(他の同様のアイデアにはCommonJSが含まれます)。AMDを使用すると、サーバー側の最適化を許可しながら、クライアント側でJavaScriptモジュールを解決およびロードすることが可能になります。サーバー側の最適化のために、モジュールの依存関係はUglifyJS 2を使用して最小化および結合できます。
慣例により、RequireJSはモジュールローダーをブートストラップするためにmain.jsファイルを期待しています。
§デプロイメント
RequireJSオプティマイザーは、一般的に、デプロイメントを実行する時まで、つまりstart
、stage
、またはdist
タスクを実行する時まで起動するべきではありません。
ビルドでWebJarsを使用している場合、RequireJSオプティマイザープラグインは、WebJar内から参照されているJavaScriptリソースがjsdelivr CDNから自動的に参照されるようにします。さらに、.min.js
ファイルが見つかった場合は、.js
の代わりに使用されます。ここでの追加ボーナスは、HTMLに必要な変更がないことです!
§有効化と設定
RequireJSの最適化は、PlayJava
またはPlayScala
プラグインを使用しているときに、プラグインをplugins.sbtファイルに追加するだけで有効になります。
addSbtPlugin("com.github.sbt" % "sbt-rjs" % "2.0.0")
アセットパイプラインにプラグインを追加するには、次のように宣言できます(パイプライン用のプラグインが1つだけであると仮定します。必要に応じて、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"
構成方法については、プラグインのドキュメントを参照してください。
次へ: 組み込みHTTPフィルター
このドキュメントにエラーを見つけましたか?このページのソースコードはこちらにあります。ドキュメントのガイドラインを読んだ後、プルリクエストを自由に提出してください。質問や共有するアドバイスはありますか? コミュニティフォーラムに参加して、コミュニティとの会話を始めてください。