2016-12-27 44 views
0

在我webpack配置我定義爲這樣的條目 -如何定義webpack CommonsChunkPlugin的入口點?

entry: [ 
    'webpack-hot-middleware/client', 
    './src/app.jsx' 
    ], 

我已經意識到如何產生的面積約爲8 MB我的包大小。

所以我決定分家廠商javascript文件到單獨的塊,即bundle.vendor.js

我知道,我必須使用使用CommonsChunkPlugin本和入門更改爲類似這樣

entry: { 
    app: './src/app.js', 
    vendors: './src/vendors.js' 
    } 

但無法弄清楚如何改變我現有的入口配置,目前設置爲

entry: [ 
    'webpack-hot-middleware/client', 
    './src/app.jsx' 
    ], 
+0

commonchunksplugin沒有真正幫助/在開發模式下工作。捆綁大小在開發模式中也大多不相關。這個命名不清的「dllplugin」對於將大型資源提取到一個單獨的預構建文件中是有用的,在一個單獨的預構建步驟中用於開發目的 –

回答

1

1.你需要告訴的WebPack你的入口點,在這種情況下,您可以定義廠商條目依賴的數組。就像這樣:

entry: { 
    app: path.join(__dirname, 'path/to/app.jsx'), // prefer using absolute paths to avoid problems 
    vendors: ['jquery', 'lodash'] 
} 

2.你需要告訴的WebPack,您的條目應該優化: 注意,你傳遞的第二串在插件的配置「名稱」。這是由Webpack生成的另一個文件的名稱。它將負責告訴瀏覽器如何正確處理依賴關係,並將包含在應用程序和供應商腳本標記之前。

plugins : [ 
    new webpack.optimize.CommonsChunkPlugin({ 
     names: ['vendors', 'manifest'] 
    }) 
] 

如果您需要,我有一個repo with a working example of this。 CommonsChunk部分位於prod配置中。

+0

我應該在哪裏放置這個''webpack-hot-middleware/client'' – WitVault

+0

這是另一個問題。似乎它已經在這裏問:http://stackoverflow.com/questions/31844343/how-to-use-webpack-dev-server-multiple-entries-point –

+1

我做了以下,它的工作'入口:{ 應用程序: '的WebPack-熱中間件/客戶', './src/app.jsx' ], 供應商:[ 'lodash' ] }' 任何方式感謝幫助。如果你喜歡,你可以更新你的答案。 – WitVault