2016-03-15 87 views
0

我有一个多入口点的应用程序。但是所有入口点都使用相同的第三方库。我想将这些第三方库单独存放在一个单独的文件中。当我按照documentation中的步骤操作时,它将我的应用程序代码也移动到第三个供应商块文件中。Webpack Multi Entry Common Vendor

entry: { 
    index: __dirname + "/entry1.js", 
    app: __dirname + "/entry2.js", 
    vendor: ["axios", "react-router", "react", "react-dom"] 
}, 
output: { 
    path: __dirname + "/build", 
    filename: "[name]-[hash].js" 
}, 
plugins: [ 
    new webpack.optimize.CommonsChunkPlugin("vendor", "[name]-[hash].js") 
] 

下面是的WebPack输出

Hash: 78d489a6e4aec65292b2 
Version: webpack 1.12.14 
Time: 8161ms 
         Asset  Size Chunks    Chunk Names 
vendor-78d489a6e4aec65292b2.js  925 kB  0 [emitted] vendor 
index-78d489a6e4aec65292b2.js 1.87 kB  1 [emitted] index 
app-78d489a6e4aec65292b2.js 1.41 kB  2 [emitted] app 
index-78d489a6e4aec65292b2.css 83 bytes  1 [emitted] index 
vendor-78d489a6e4aec65292b2.js.map 1.05 MB  0 [emitted] vendor 
index-78d489a6e4aec65292b2.js.map  2.3 kB  1 [emitted] index 
index-78d489a6e4aec65292b2.css.map 107 bytes  1 [emitted] index 
app-78d489a6e4aec65292b2.js.map 1.76 kB  2 [emitted] app 
index.html 370 bytes   [emitted] 
app.html 311 bytes   [emitted] 
[0] multi vendor 64 bytes {0} [built] 
+ 258 hidden modules 
Child html-webpack-plugin for "index.html": 
+ 3 hidden modules 
Child html-webpack-plugin for "app.html": 
+ 3 hidden modules 
Child extract-text-webpack-plugin: 
+ 2 hidden modules 

打开这个issue in Github 2191

+0

'新webpack.optimize.CommonsChunkPlugin({ 名: '普通', minChunks:2 })'和删除'vendor'条目在所有。 – zerkms

+0

@zerkms没有修复。它还创建了另一个common.js文件,此外供应商也有我的应用程序代码。 – Ravi

+0

需要更多信息。你可以用'-d'标志附加webpack控制台输出吗? –

回答

1

设置minChunksInfinity似乎解决它。以下是代码。你也可以得到一个working example here

new webpack.optimize.CommonsChunkPlugin({ 
     name: "vendor", 
     minChunks: Infinity 
    })