2016-07-07 58 views
0

我創建了一個由多個ES2015模塊組成的組件庫。每個都是相對獨立的,但是有一個外部構建系統來幫助促進集成測試和部署。 其中一個模塊具有核心模塊和一組可選子模塊。該代碼結構看起來鬆散,如:webpack babel loader兩次導入相同的模塊

root 
    .\build\... 
    .\src 
    .\bundle1 
     .\build\... 
     .\src 
     .\core.js 
     .\submodules\ 
      .\a.js 
      .\b.js 

由於歷史的原因,有幾個子模塊取決於核心模塊上,就目前而言,必須用它來部署,所以最終被一個有點循環依賴。如前所述,每個模塊都是相對獨立的,因此它有自己的構建系統。當使用本地構建時,一切都顯示正常。當「主」構建系統被使用時,問題就會變得明顯。當它啓動相同的構建時,核心塊最終會生成兩次。內部子模塊將自己附加到第一個實例,但第二個實例實際上被導出,使得整個卡片房子變得毫無用處。 這似乎不是一個webpack的問題,因爲當我創建演示應用時,我沒有使用babel,並且沒有出現錯誤。

道歉了那麼久才切入正題...... 我的問題是,有什麼明顯的是我丟失可能會造成這一點,或者是有錯誤的地方通天/的WebPack,巴貝爾-loader?

由於這有點複雜,我創建了this reference project而不是在這裏內聯源碼。如上所述,/ develop不顯示這個問題,因爲它不使用babel。 add-babel分支的確如此。

回答

0

原來,是的,我錯過了可能應該是顯而易見的事情。由於bundle1的配置從較高的級別打開,因此顯然需要context。 TBH我不確定我是否完全贊同這一點,因爲它在使用commonJS時有效,但在運輸時不起作用...

+0

鏈接指示當涉及動態導入時使用上下文。 –

+0

是的。在這種情況下,我的問題是我不知道'context'是一個配置選項。我責備WebPack的godawful文件:第 –