0

すべてを 1 つのレイヤーに追加して、dojo とアプリを 1 つのファイルに構築しようとしているシナリオがあります。ただし、dojo の gfx/render では、レンダラーが動的に決定され、そのレンダラーのモジュールを取得するために require ステートメントが使用されます。したがって、ビルド後、最終的なjsファイルにこれらのレンダーモジュールがありません。

最終的なjsファイルをロードすると、実際の場所でレンダリングを見つけようとします。

これらのファイルをそのまま新しいレイヤーに追加すると、新しい問題が発生します。ロードされたレンダラー モジュールは、その依存関係リストで他の Dojo モジュールを定義します。それらのほとんどは、以前の最終的な js ファイル (レイヤー 1) に既に含まれています。

したがって、これは大きな層につながります。

この問題に対処するには、どのようなソリューションを使用できますか?

4

1 に答える 1

0

動的に必要なモジュールもビルドに含める必要があります... そのためには、ローダー モジュール (例: LoaderModule) を作成し、その中でそれらの依存関係を要求してから、そのモジュールを依存関係としてビルド内のモジュールの 1 つに追加します。層。まもなく:

LoaderModule.js:

define([
    'dojo/_base/declare',

    /* Add all dynamically required modules here to include in production build */
    'dojox/gfx/renderer'

], function(declare) {
    return declare(null, {});
});

次に、依存関係として LoaderModule をコア モジュールの 1 つに追加します。

于 2015-01-29T01:21:55.980 に答える