我已经了解到dojo的加载器可以加载非amd脚本,这很棒。我们有一个供应商提供的脚本,需要在加载脚本之前设置某些全局变量。如果,在我的AMD模块中,我设置全局变量(我知道,对,对吗?)然后需要([“/ vendor / script.js”]),一切都很好。
我找不到答案的一件事是,构建过程是否会看到这需要调用并将“/vendor/script.js”添加到依赖项列表并构建它。如果我理解正确的话,那将导致脚本在我的模块有机会设置所需的全局变量之前触发。
谁能告诉我?
答案 0 :(得分:4)
默认行为是构建将遍历依赖项并将它们包含在构建中。但是你有选择:
1)在个人资料中,您可以指定排除。这些不会包含在构建中。
// profile.js used by the build
layers: {
"myApp/myApp": {
include: [...],
exclude: [vendor/script.js]
}
2)不要在define语句中包含依赖项,稍后在模块中使用require。 dojo/fx
使用dojo/fx/toggler
// myCustomWidget.js
define([], function() {
// the require function won't be called by the build
// and the vendorScript won't be pulled into the build.
require(["vendor/script"], function(vendorScript) {
});
});
答案 1 :(得分:0)
我要做的是创建另一个脚本来设置全局变量,然后在之前包含,包括已编译的.js文件。
如果您将全局变量设置为需要模块的值,我猜您可以在构建完成后编辑已编译的.JS文件。