【发布时间】:2013-07-01 01:48:32
【问题描述】:
有没有办法在 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” 语境: _。使用要求([]) 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
}
// ...
});
【问题讨论】:
-
似乎您使用的是糖语法,这就解释了为什么它只适用于字符串而不适用于变量:stackoverflow.com/a/10914329/1825443
标签: javascript browser module requirejs r.js