RequireJS で他のモジュールを「動的に」ロードするモジュールを定義する方法はありますか? はいの場合、オプティマイザー (r.js) はモジュールをいつどのように含める必要があるかをどのように理解していますか?
たとえば、dynModules
名前/パスのペアを定義するモジュールを考えてみましょう:
define([], function () {
return ['moduleA', 'moduleB']; // Array of module names
});
別のモジュールは、配列に基づいてモジュールを動的にロードしようとしています。これは機能しません:
define(['dyn_modules'], function (dynModules) {
for(name in dynModules) {
var module = require(path); // Call RequireJS require
}
// ...
});
...私に与えます:
キャッチされないエラー: モジュール名 "moduleA" は、コンテキストに対してまだロードされていません: _。require([]) を使用 http://requirejs.org/docs/errors.html#notloaded
エラーを解決できますが、もう「動的」ではありません。
define(['dyn_modules', 'moduleA', 'moduleB'], function (dynModules) {
for(name in dynModules) {
var module = require(path); // Call RequireJS require
}
// ...
});