質問

私は次のようなコードを持っています

define("ModuleA", ["InitialDependency"], function (initDep){
   return {};
});


define("ModuleB", ["ModuleA", "OtherDependency"], function (moduleA, otherDep){
   return {};
});

これらのモジュールのそれぞれは、別々のファイル"ModuleA。js"、"Moduleb.js"、"初期設定"、"js」と「その他の依存関係。js"。

これらのモジュールは、私のアプリケーションに順番にロードされます。ModuleBは常にModuleAの後にロードされます。これは、最適化段階では、ModuleAのスクリプトをModuleB用のビルドされたスクリプトに結合したくないことを意味します。私は次のものが欲しい

モジュレア建てられた。jsに含まれるもの

  • イニシャルデペンデンシー
  • モジュレア

モジュレブ建てられた。jsに含まれるもの

  • その他の依存関係
  • モジュレブ

ただし、ModuleBがロードされない可能性があるため、それらすべてを同じファイルに入れたくありません。

私は両方のモジュールのビルドスクリプトを行うことができますが、私のプロジェクトにはかなりの数のモジュールがあり、それらの多くを一度に

これらのモジュール(および同じ依存関係パターンに従うもの)の両方を構築するためのビルドスクリプトを作成するために何を知る必要がありますか?

役に立ちましたか?

解決

これを達成するには、次の操作を実行する必要があります modules 設定オプション。

それはこのように見えるかもしれません:

{
    modules: [
        {
            name: "ModuleA",
            include: [],
            exclude: []
        },
        {
            name: "ModuleB",
            exclude: [
                "moduleA"
            ]
        }
    ]
}

Jamesによる同様の設定例がここにあります: https://github.com/requirejs/example-multipage

もちろん、これらのモジュールを別々に構築することで、パスを更新する必要が生じる可能性があります。もしそうなら、最良の方法は、次のファイルを含むファイルを作成することです require.config あなたのビルドされたアプリのための特別な設定で呼び出し、あなたの通常のものの代わりにこの設定を含めます。しかし、依存関係を適切に分離した方法で設定すれば、おそらくうまくいくでしょう。"良い分離"の方法で、私はそれを意味する場合 moduleA ベーススクリプトである場合、依存関係がパックされてはいけません moduleB -しかし、私はこれが常識だと思います!

Shimmedモジュールについての注意:Shimmed configはファイルがロードされ、r.jsによってプラグインを注文するときにのみ機能するため、これらが以前にロードされることを100%確信していない場より多くの情報はここに: https://github.com/requirejs/example-multipage-shim

この助けを願って!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top