私たちは開発中にRequireJSとAMDを愛用しています。ここでモジュールを編集し、ブラウザでリロードしてすぐに結果を見ることができます。しかし、モジュールを1つのファイルに結合して実稼動環境を構築するときには、ローダーがRequireJSかそれとも小さいパートナー "アーモンド"であるかにかかわらず、ここに説明されているAMDローダーが存在する必要があります。連結されたRequireJS AMDモジュールにローダーが必要なのはなぜですか?
http://requirejs.org/docs/faq-optimization.html#wrap
私の混乱は:なぜローダーが必要なのですか?モジュール内でrequire()
コールを行う必要がある非常に珍しい状況がない限り、一連のAMDモジュールをローダーなしで連結することができます。最も簡単な例は、次のようなモジュールのペアです。
ModA.js:
define([], function() {
return {a: 1};
});
ModB.js:これら二つのモジュールを考える
define(['ModA'], function(A) {
return {b : 2};
});
、結合演算子は、単に負担本番サーバ次のテキストを生成し、できなかったようですかRequireJSまたはAlmondのいずれかによって必要とされる余分な帯域幅または計算を備えたブラウザ。
私は、生成し(と私は上記の二つのモジュールからのスニペットが挿入されている場所を示すために、«»山形引用符を使用しています)連結子想像:
これまでのところ、私はできる限りこれを、 AMDのセマンティクスを正しく再現し、余分なグルーJavaScriptを最小限に抑えることができます。そのような連結子が利用可能ですか?そうでない場合は、私が書く必要があると思うのは愚かなのでしょうか?define()
で書かれたシンプルでクリーンなモジュールで構成され、後でrequire()
を呼び出す必要がないコードベースは、
この問題をどうやって解決しましたか?私は、アーモンドを使用して、最小ファイルが3K、次に連結ファイル(9K対6K)が大きいことが分かった。 – Naor