是否需要在模块中使用dojo build中的依赖项?

时间:2013-01-31 14:51:23

标签: dojo

我已经了解到dojo的加载器可以加载非amd脚本,这很棒。我们有一个供应商提供的脚本,需要在加载脚本之前设置某些全局变量。如果,在我的AMD模块中,我设置全局变量(我知道,对,对吗?)然后需要([“/ vendor / script.js”]),一切都很好。

我找不到答案的一件事是,构建过程是否会看到这需要调用并将“/vendor/script.js”添加到依赖项列表并构建它。如果我理解正确的话,那将导致脚本在我的模块有机会设置所需的全局变量之前触发。

谁能告诉我?

2 个答案:

答案 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文件。