requireJs构build脚本
我有如下代码
define("ModuleA", ["InitialDependency"], function (initDep){ return {}; }); define("ModuleB", ["ModuleA", "OtherDependency"], function (moduleA, otherDep){ return {}; });
每个模块在单独的文件“ModuleA.js”,“Moduleb.js”,“InitialDependency.js”和“OtherDependency.js”中定义。
这些模块在我的应用程序中按顺序加载。 ModuleB始终在ModuleA之后加载。 这意味着在优化阶段,我不希望将ModuleA的脚本组合到ModuleB的构build脚本中。 我想要以下
ModuleA.built.js包含
- InitialDependency
- ModuleA
ModuleB.built.js包含
- OtherDependency
- ModuleB
我不希望它们都在同一个文件中,但是ModuleB可能永远不会被加载。
我可以为这两个模块做一个构build脚本,但是这样做会很耗时,因为我的项目中有很多模块,并且希望构build脚本能够一次构build大量的模块。
我需要知道什么来创build构build脚本来构build这两个模块(以及更多遵循相同的依赖模式)?
要做到这一点,你必须玩modules
configuration选项。
它可能是这样的:
{ modules: [ { name: "ModuleA", include: [], exclude: [] }, { name: "ModuleB", exclude: [ "moduleA" ] } ] }
这里有一个由James设置的类似示例: https : //github.com/requirejs/example-multipage
当然,通过分别构build这些模块,您可能最终需要更新path。 如果是这样的话,那么最好的方法是创build一个包含require.config
调用的文件,并为你的应用程序提供特殊的设置,并且包含这个configuration,而不是通常的configuration。 但是,如果你以一种很好的分离方式设置依赖关系,那么你可能会好起来的。 通过“好分离”的方式,我的意思是说,如果moduleA
是基本脚本,那么它不应该有依赖包装moduleB
– 但我想这是常识!
关于shimmed模块的注意事项 :由于shimmed config只在加载文件时工作,并且由r.js来定购插件,所以如果不能100%确定这些模块将被加载,请确保不要包含没有依赖的shim模块。 更多信息在这里: https : //github.com/requirejs/example-multipage-shim
希望这个帮助!