6

新しいパッケージを dojo config に追加する方法はありますか? dojo.js の読み込み時にパッケージを追加します。

<script src='dojo_1.7.2/dojo/dojo.js' 
    data-dojo-config="async:true,isDebug:true,parseOnLoad:false,
      packages:[{name:'project1',location:'../../js/proj1'},
        {name:'common',location:'../../common'}]"></script>

実行時に新しいパッケージを追加できるようにしたい。

dojo.registerModulePathは dojo1.6 より前にこの仕事をしていましたが (私が思うに)、1.7 で非推奨になりました。

Dojo 1.7.2 を使用しています。

ありがとう。

4

2 に答える 2

6

構成オブジェクトを使用してrequireを呼び出すことにより、ロード後にパッケージを追加できます。

Eg:

require({
    packages: [
        {"name": "myLib", "location": "release/myLib"}
    ]
});

ただし、ドキュメント( dojo / _base / config )によると、これによりDojoの別のインスタンスが作成されます。また、これはバージョン1.8のコードです。1.7では動作しないと思います。

追加のオブジェクトをdojoConfigまたはrequire.rawConfigにプッシュできる可能性があると思いましたが、これらはローダーによって取得されません。ロード後に設定を変更できないようです。

必要な構成オブジェクトを渡すことができるので、次のようになります。

Eg.

dojoConfig.packages.push({"name": "myLib", "location": "release/myLib"});

require(dojoConfig, [...moduleIds...], function(...arguments...) {
});

これは個々のrequireに対しては機能しますが、グローバル構成を変更することはありません(したがって、define()またはその後のrequire()の呼び出しでは機能しません)。ここでも1.8を使用していますが、 1.7で動作すると思います。

他の誰かが見つけたこの作品を作る別のもっと簡単な方法があるかもしれませんか?

于 2012-11-14T19:03:49.527 に答える