requirejs shim依赖项是否保证在常规模块依赖项之前加载?

时间:2013-11-08 17:32:56

标签: javascript requirejs

给出类似

的配置
require.config({ shim: { main: ['one'], one: ['two'] });

之类的主要模块
define('main', ['somethingThatUsesOneAndTwo'], function (s) {  });

是保证在one执行时执行的全局脚本twosomethingThatUsesOneAndTwo吗?

我知道可以创建表达somethingThatUsesOneAndTwoonetwo的依赖关系的填充配置条目,但我还没有看到这种情况在一对大的情况下失败和复杂的项目,所以我想知道它是否可能支持。

1 个答案:

答案 0 :(得分:1)

根据你在这里的内容,这将正常工作,但我不认为这是最好的做法。

这是有效的,因为您的垫片要求主要取决于oneone取决于two。当main尝试启动时two将会运行,然后one将会运行,最后somethingThatUsesOneAndTwo将会运行。

然而,这根本不是很简单。例如,为什么你有main的垫片并在主模块中使用define

如果somethingThatUsesOneAndTwo真的取决于onetwo,那么你应该将其简化为依赖于那些,以便它可以正常工作,如果它是在另一个没有发生的模块中导入的话将依赖关系设置为像main那样。