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这两个模块(以及更多遵循相同的依赖模式)?

要做到这一点,你必须玩modulesconfiguration选项。

它可能是这样的:

 { 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

希望这个帮助!