2

ビルドで繰り返されるコードの量を減らすために、共通レイヤーに含まれるモジュールを他のレイヤーから自動的に除外する方法を探していました。Google 検索を行って、 https://dojotoolkit.org/reference-guide/1.8/build/profiles.html?highlight=layerdependenciesから「layerDependencies」に出くわしました。これに先立って、私はenter link description hereで writeAMD のドキュメントを見ていました。これらのページはどちらも Dojo 1.8 用のようですが、レイヤー定義に入れることができるものについて相互に排他的な定義と思われるもの (例えば、「copyright」と「copyrightFile」など) が含まれています。

私の直感では、これらのドキュメントの 1 つが古くなっているため、非推奨にする必要があることがわかりました。悲しいことに、私の直感では、おそらく以前のリンクだとわかりました。ただし、私のビルドでは、writeAMD の構文と混合すると、layerDependencies が機能しました。

これらの文書は両方とも有効ですか?

4

1 に答える 1

2

おっしゃるとおりlayerDependencies、古い (1.7 より前の) ビルド システムの一部です。現在のビルド コードは に移動layerDependenciesexcludeます。

util\build\v1xProfiles.js

layer.exclude = transformLayerDependencies(layer.layerDependencies, layer.name);

これは、ビルドを作成するときに使用するチュートリアルです。

http://dojotoolkit.org/documentation/tutorials/1.8/build/


編集 - 除外プロパティの使用法を明確にする

exclude は、レイヤーではなく、除外するモジュールの配列です。プロファイルでは、一連のモジュールを含む変数を定義します。

var profile = (function(){

    var coreRequires = [        
        "dojo/_base/declare",
        "dojo/_base/fx",
        "dojo/_base/lang",
        "dojo/currency",
        "dojo/fx",
        "dojo/number",
        "dojo/on",
        "dojo/query"
    ];

    ...

次に、レイヤーの包含と除外を定義するときに、この変数を使用します。

    layers: {
        "myApp/core": {
            include:    coreRequires
        },

        "myApp/appLayer1": {
            include:    [
                "myApp/CustomWidget1",
                "myApp/CustomWidget2",
                ...
            ],
            exclude: coreRequires
        }
    }
于 2013-03-19T12:53:13.637 に答える