我正在使用RequireJS和r.js优化器来构建一个生产就绪的应用程序。我注意到当将变量传递给require()
调用时,一切都按预期工作。
var someDependencies = ["dependency-1", "dependency-2", "dependency-3"];
require(someDependencies);
但是,在运行优化器时,不会从变量中读取依赖项,因此不会包含在串联的应用程序脚本中。据我了解,这是因为在调用中r.js
查找字符串文字。require()
它不处理 JavaScript,因此变量对它没有任何意义。这甚至在r.js 的文档中都有说明。
优化器只会组合在传递给顶层 require 和 define 调用的字符串文字数组中指定的模块,或者在简化的 CommonJS 包装中组合 require('name') 字符串文字调用。因此,它不会找到通过变量名加载的模块。
我的问题是:有什么办法可以克服这个问题,以便我可以将变量传递给require()
调用,但仍将它们包含在 r.js 构建中?