我目前正在从Webpack 3升级到4。主要更改之一是将CommonChunks的配置转换为SplitChunks。
在Webpack 3中,我们有以下内容
new webpack.optimize.CommonsChunkPlugin({
name: 'commons',
filename: 'commons-min.js',
chunks: commonsChunks,
minChunks: 10,
}),
所以我们有commons-min.js的输出
切换到Webpack 4并使用SplitChunks
splitChunks: {
minChunks: 10,
cacheGroups: {
"commons": {
name: "commons",
chunks (chunk) {
return commonsChunks.includes(chunk.name);
},
},
},
在输出配置中,有
output: {
filename: '[name]-min.js',
chunkFilename: '[name]-min-async.js',
path: __dirname + '/public/js',
},
所以我现在通过SplitChunks得到的输出是commons-min-async.js
。当前,我们正在使用chunkFilename进行动态导入,并且对于部署commons和async文件有不同的策略,并且希望将两者分开。似乎没有SplitChunks的文件名属性,chunkFilename似乎只接受一个字符串,而不接受类似filename的函数。还有另一种方法来设置拆分块的文件名,并且不影响动态导入分块文件的名称吗?