开启打包压缩 并将chunk-vendors包分解
const CompressionPlugin = require("compression-webpack-plugin");
module.exports = {
productionSourceMap: false,
configureWebpack: {
plugins: [
ComponentsPlugin({
resolvers: [VantResolver()]
}),
// 开启打包压缩
new CompressionPlugin({
test: /\.(js|css|html)?$/i, // 压缩文件格式
filename: "[path].gz[query]", // 压缩后的文件名
algorithm: "gzip", // 使用gzip压缩
minRatio: 0.8, // 压缩率小于1才会压缩
threshold: 10240,
deleteOriginalAssets:
process.env.NODE_ENV === "development" ? false : true //是否删除源文件,只留压缩包
})
],
// 将chunk-vendors分解
optimization: {
runtimeChunk: "single",
splitChunks: {
chunks: "all",
maxInitialRequests: Infinity,
minSize: 20000,
cacheGroups: {
vendor: {
test: /[\\/]node_modules[\\/]/,
name(module) {
const packageName = module.context.match(
/[\\/]node_modules[\\/](.*?)([\\/]|$)/
)[1];
return `npm.${packageName.replace("@", "")}`;
}
}
}
}
},
}
};