オプティマイザーのドキュメントをかなり長い間読んでいますが、理解できないようです。ドキュメントによると:
オプティマイザーは、最上位のrequireおよびdefine呼び出し、または簡略化されたCommonJSラッピングのrequire('name')文字列リテラル呼び出しに渡される文字列リテラルの配列で指定されたモジュールのみを結合します。したがって、変数名を介してロードされたモジュールは見つかりません。
これまでのところOKです。これは基本的に、r.jsがネストされた依存関係を含めたりクロールしたりしないことを意味します。ここで、次のような「メインアプリケーション」ファイルがあると仮定します。
require([ 'es5shim', 'tools' ], function() {
console.log('fictive app entry point');
require([ 'domready!' ], function( doc ) {
console.log('domReady, loading GUI modules...');
require([ 'GUI/window', 'GUI/header', 'GUI/content' ]);
});
});
ここで問題がかなり明らかになると思います。r.js(オプティマイザー)は、リンクするだけでそのファイルを作成しes5shim.js
ますtools.js
。window.js
このオプティマイザー、header.js
およびcontent.js
この例のファイルもリンクする必要があることを伝えるための良い方法/回避策はありますか?
もちろん、domReady
このインスタンスのプラグインはロードされ、最終的にコールバックを実行しますが、ここでの構造自体は、オプティマイザーがその仕事をするのを妨げているようです。
質問は:
「Toprequirecall 」にすべてのモジュールをリストするだけの場合、r.jsには、ネストされたモジュールとネストされたネストされたモジュールからのすべてのトップ
require
と呼び出しがメインアプリファイルにインクルード+リンクされますか?define
彼らは、ドキュメントのr.jsのインクルードオプションについて言及しています。ここで意味がありますか?もしそうなら、それを適切に呼び出す方法は?
もちろん、後でモジュールを遅延ロードするオプションを失いたくはありませんが、この種の依存関係(DOMContentLoadedを待機)については、それを回避する方法があることを願っています。