2016-03-01 33 views
0

我想使用WebPack來構建我的JavaScript應用程序。該應用程序應該被部署在幾個網站上,進行幾種不同的修改。因此,我已經設置爲使用多個入口點,一個每每個站點的配置:WebPack:無需額外塊的多個入口點

entry: { 
    s1: "s1", 
    s2: "s2", 
    s3: "s3" 
}, 

該應用程序還使用幾個依賴關係,它們經由AMD模塊加載(I之前使用RequireJS):

c1 
c2 
... 

假設s1需要c1c2,而s2只需要c1。構建工程確定,並創建s1s2s3作爲切入點,幷包含組件的各種組合幾個塊,爲網站需要:

/* s1 */ 
define(['c1', 'c2'], function(c1, c2) { ... } 

我的問題是:我需要什麼在配置中指定,以便將每個網站包構建爲一個獨立文件?我很欣賞WebPack將應用程序拆分爲塊的能力,但現在我需要每個構建都是一個JS文件(出於各種原因)。

我能夠做到這一點很容易,當我只配置一個單一入口點(如entry: "s1"),使用以下:

webpack.optimize.LimitChunkCountPlugin({maxChunks: 1}) 

然而,對於多個入口點,這個配置創建一個額外大塊的所有入口點之上。如何確保每個構建的入口點(如s1.bundle.js,s2.bundle.js,...)包含該文件內的所有JavaScript,並且不需要根據需要加載任何塊?

回答

2

聽起來最簡單的方法是擁有多個構建(每個構建都有一個入口點),而不是具有多個入口點的單個構建。如果您的webpack.config.js導出一組配置對象而不是一個配置對象,則webpack將自動爲每個配置執行單獨的構建。例如,你可以將你的入口點放在一個數組中並循環遍歷它,爲每個數據創建一個配置對象。現在每個配置只有一個入口點,並且LimitChunkCountPlugin應該爲您提供單個文件。

相關問題