tl;dr: すべてのテキスト依存関係がインライン化されている場合、最適化されたファイルから text.js プラグインを除外するにはどうすればよいですか?
Require.js オプティマイザー(Node 経由) を使用して、プロジェクト内の JS ファイルの一部を最適化しています。テキスト プラグインを使用して、テキストの依存関係 (HTML テンプレート、CSS) を読み込みます。次のように、依存関係を含めて最適化したいモジュールがあります。
define(['text!core/core.css'], function(styles) {
// do setup stuff, return an object
});
Require.js のドキュメントには、オプティマイザーcore/core.css
を実行するとファイルがインライン化されると書かれており、次のr.js
ように呼び出しています。
$ r.js -o baseUrl=./src name=core out=release/test.js
Tracing dependencies for: core
Uglifying file: c:/path/release/test.js
c:/path/release/test.js
----------------
c:/path/src/text.js
text!core/core.css
c:/path/src/core.js
良いニュースは、これが機能することです。最適化されたファイルを見ると、次のようなインライン テキストが表示されます。
define("text!core/core.css",[],function(){return"some CSS text"}),
define("core",["text!core/core.css"],function(a){ ... })
悪いニュースは、text.js プラグインも含まれていることです。約 3K 追加され、(私が知る限り) 外部テキスト ファイルをロードするための完全に不要なコードで構成されています。3K がそれほど多くないことはわかっていますが、コードを高度に最適化するように努めています。テキストの依存関係がインライン化されている場合、テキスト プラグインのコードはまったく必要ないことを理解しています。呼び出しに追加することでテキスト プラグインをexclude=text
除外r.js
できますが、そうすると、ブラウザーで最適化されたコードを使用しようとすると、text.js プラグインを読み込めないというエラーが表示されます。
そう:
ここで text.js プラグインが実際に必要な理由はありますか?
そうでない場合、この動作を修正できる構成オプションはありますか、または
r.js
不要なプラグインが読み込まれていることを Require.js に納得させるために含めることができる、text.js プラグイン用の簡単な shimはありますか?