2012-09-30 80 views
2

我有这些模块中的每一个在单独的文件“ModuleA.js”,“Moduleb.js”,“InitialDependency.js”和“OtherDependency.js定义像下面requireJs构建脚本

define("ModuleA", ["InitialDependency"], function (initDep){ 
    return {}; 
}); 


define("ModuleB", ["ModuleA", "OtherDependency"], function (moduleA, otherDep){ 
    return {}; 
}); 

代码”。

这些模块在我的应用程序中按顺序加载。 ModuleB始终在ModuleA之后加载。这意味着在优化阶段,我不希望将ModuleA的脚本组合到ModuleB的构建脚本中。我想下面的

ModuleA.built.js包括

  • InitialDependency
  • ModuleA

ModuleB.built.js包括

  • OtherDependency
  • ModuleB

我不希望它们都在同一个文件中,但是ModuleB可能永远不会被加载。

我可以为两个模块做一个构建脚本,但是这会很耗时,因为我在我的项目中有相当多的模块,并且希望构建脚本能够一次构建大量的模块。

我需要知道什么来创建构建脚本来构建这两个模块(以及更多遵循相同的依赖模式)?

回答

1

为了达到这个目的,你必须使用modules配置选项。

它看起来是这样的:

{ 
    modules: [ 
     { 
      name: "ModuleA", 
      include: [], 
      exclude: [] 
     }, 
     { 
      name: "ModuleB", 
      exclude: [ 
       "moduleA" 
      ] 
     } 
    ] 
} 

有一个类似的例子设置由詹姆斯在这里:https://github.com/requirejs/example-multipage

当然,通过单独建立这些模块,你可能最终需要更新的路径。如果是这样,那么最好的方法是创建一个包含require.config电话的文件,并为您的应用程序设置特殊设置,并包含此配置而不是通常的配置。但是如果你以很好的分离方式设置依赖关系,那么你可能会很好。通过“好分离”的方式,我的意思是,如果moduleA是基本脚本,那么它不应该与moduleB包装相关 - 但我想这是常识!

备注匀模块:作为匀配置只磨片文件被加载运行,并通过r.js订购的插件,请确保您不包括填隙组件没有它的依赖,如果你不是100%确定这些将在之前加载。更多的信息在这里:https://github.com/requirejs/example-multipage-shim

希望这个帮助!