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

Javascript 是否保证在常规模块依赖项之前加载requirejs垫片依赖项?,javascript,requirejs,Javascript,Requirejs,给定一个类似 require.config({ shim: { main: ['one'], one: ['two'] }); 和一个主模块,如 define('main', ['somethingThatUsesOneAndTwo'], function (s) { }); 全局脚本one和two是否保证在执行somethingthestatesone和two时执行 我知道可以创建垫片配置条目来表示somethinthestatesoneandtwo对one和two的依赖性,但我还没有看

给定一个类似

require.config({ shim: { main: ['one'], one: ['two'] });
和一个主模块,如

define('main', ['somethingThatUsesOneAndTwo'], function (s) {  });
全局脚本
one
two
是否保证在执行
somethingthestatesone和two
时执行


我知道可以创建垫片配置条目来表示
somethinthestatesoneandtwo
one
two
的依赖性,但我还没有看到即使在几个大型复杂的项目中这种方法也会失败,所以我想知道它是否可能得到支持。

根据您在这里所做的,这将起作用没错,但我不认为这是未来的最佳实践

这是因为您的垫片要求main依赖于
one
,而
one
依赖于
two
。当尝试启动
main
时,将运行
two
,然后运行
one
,最后运行
somethingthestatesone和two

然而,这并不是很简单。例如,为什么在主模块中为
main
设置垫片并使用
define


如果
somethingtatusesoneandtwo
确实依赖于
one
two
,那么您应该对其进行调整,使其依赖于这些,以便在导入到另一个模块时能够正确工作,而不是像
main
那样设置依赖项。

我同意这不是最佳做法,但这种方法(不是我用的)是将一个大型遗留项目转换成更易于管理的项目。在我们的例子中,主应用程序文件对全局脚本具有垫片依赖关系,这些脚本总是假定已加载。最好的做法是真正表达每个模块的依赖关系。