2012-09-30 146 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

希望這個幫助!