tl; dr:すべてのテキスト依存関係がインライン展開されていると、最適化されたファイルからtext.jsプラグインを削除するにはどうすればよいですか?Require.jsオプティマイザが最適化されたファイルにテキストプラグインを含めないようにするにはどうすればよいですか?
Require.js optimizer(ノード経由)を使用して、プロジェクト内のいくつかのJSファイルを最適化しています。私はtext pluginを使ってテキストの依存関係(HTMLテンプレート、CSS)を読み込みます。私はこのように、私はその依存関係を含め、最適化するモジュールを持っている:
define(['text!core/core.css'], function(styles) {
// do setup stuff, return an object
});
Require.jsドキュメントは私が起動していr.js
オプティマイザを実行するとcore/core.css
ファイルがインライン化されることを言いますこのように:
$ 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はそれほどではありませんが、コードを高度に最適化しています。テキストの依存関係がインライン化されていれば、テキストプラグインのコードは必要ではありません。私はr.js
コールにexclude=text
を追加してテキストプラグインを保つことができますが、そうした場合、ブラウザでtext.jsプラグインをロードできなかったことをブラウザで最適化したコードを使用しようとするとエラーが発生します。だから、
:
がtext.jsプラグインが実際にここにを必要とする任意の理由がありますか?
ない場合は、この動作を修正することができます
r.js
ため設定オプションがあり、またはは私が必要と説得するために含めることができるtext.jsプラグインの簡単シムがあります。 jsは不要なプラグインが読み込まれていますか?
よろしくお願いいたします。これを試してみます。本質的に答えは(3)シムを作ることです。私は自分のビルドプロセスでうまくいくことができます。 – nrabinowitz
後継のために、私は 'define(" text "、{load:function {)}};'のようにshimを作成し、最適化されたファイルの先頭に追加しました。細かく動作すると思われる – nrabinowitz
同じことが不思議でした。 'stubModules:['text']'は新しいバージョンのRequireJSでトリックを行います。 – superlukas