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