在Webpack 4中,CommonsChunkPlugin被splitChunks取代,用于实现代码分割和公共模块提取。要将Webpack 3的CommonsChunkPlugin配置升级到Webpack 4的splitChunks,可以按照以下步骤进行操作:
以下是一个示例的Webpack 4配置文件,展示了如何将Webpack 3的CommonsChunkPlugin配置升级到Webpack 4的splitChunks:
const path = require('path');
module.exports = {
entry: {
app: './src/index.js',
vendor: ['react', 'react-dom']
},
output: {
filename: '[name].bundle.js',
path: path.resolve(__dirname, 'dist')
},
optimization: {
splitChunks: {
chunks: 'all',
minSize: 0,
minChunks: 1,
cacheGroups: {
vendor: {
test: /[\\/]node_modules[\\/]/,
priority: -10
},
default: {
minChunks: 2,
priority: -20,
reuseExistingChunk: true
}
}
}
}
};
在上述示例中,我们使用splitChunks配置来实现代码分割和公共模块提取。其中,chunks设置为'all',表示对所有模块进行分割;minSize设置为0,表示不限制模块的最小大小;minChunks设置为1,表示只有被引用一次的模块才会进行分割。
cacheGroups中,我们配置了一个名为vendor的cacheGroup,用于提取来自node_modules目录下的模块。test使用正则表达式匹配node_modules目录,priority设置为-10,表示优先级较高,会先被提取。
另外,我们还配置了一个名为default的cacheGroup,用于提取其他模块。minChunks设置为2,表示只有被引用两次以上的模块才会进行分割;priority设置为-20,表示优先级较低,会在vendor之后被提取。
通过以上配置,Webpack 4会根据splitChunks的选项,自动进行代码分割和公共模块提取,生成对应的bundle文件。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云