Webpack 2与CommonsChunkPlugin
相关的问题/澄清。
{
entry: {
app: './src/app.ts',
vendor: ['some-third-party-lib', 'another-third-party-lib']
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: '[name].js'
},
plugins: [
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks: Infinity
}) ]
}
据我了解,CommonsChunkPlugin
将入口点之间共享的公共代码分解为单独的包。在上面的代码段中,它会说"在我的入口点之间给我所有共享代码' app'和'供应商'"并将它们放在vendor
块/文件中。由于vendor
既是入口点又是共享块,结果是我的所有第三方库都以1个文件(vendor.js
)结尾。我能正确理解吗?
答案 0 :(得分:0)
根据文档,minChunks
的{{1}}选项配置以下内容:
在将模块移入公共块之前需要包含模块的最小块数。
传递
CommonsChunkPlugin
只会创建公共块,但不会移动任何模块。
src:https://webpack.js.org/plugins/commons-chunk-plugin/#options
在您的示例中,Infinity
只会提取CommonsChunkPlugin
入口点中指定的块,并且它不会自动检测其他共享块。如果删除了vendor
选项,插件将自动包含所有入口点引用的块。在这种情况下,您只有两个入口点,因此不会产生任何影响。