我的webpack优化配置如下:
optimization: {
runtimeChunk: 'single',
minimize: false,
splitChunks: {
chunks: 'all',
maxInitialRequests: Infinity,
minSize: 0,
cacheGroups: {
config: {
test: /[\\/]app[\\/]js[\\/]config[\\/]/,
minSize: 0
},
vendors: {
test: /[\\/]node_modules[\\/]/,
name(module) {
// get the name. E.g. node_modules/packageName/not/this/part.js
// or node_modules/packageName
const packageName = module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)[1];
// npm package names are URL-safe, but some servers don't like @ symbols
return `npm.${packageName.replace('@', '')}`;
},
}
},
},
},
这很完美,可以生成我想要的所有捆绑包。 但是,我不希望将配置包缩小。不过,所有其他捆绑包都应缩小。到目前为止,我只找到一个全局设置,最小化:true / false。我还有另一种更细粒度的设置方式吗?
答案 0 :(得分:1)
查看有关optimization.minimizer设置和chunkFilter的文档
选项。您应该为config
块设置名称。并在您的optimization
设置中添加以下内容:
minimizer: [
new TerserPlugin({
chunkFilter: (chunk) => {
if (chunk.name === 'CONFIG CHUNK NAME') {
return false;
}
return true;
},
}),
],
请注意,您需要使用插件:const TerserPlugin = require('terser-webpack-plugin');
。