1、安装gzip
npm install compression-webpack-plugin --save -dev
注:安装最新版本会报错:Cannot read property ‘tapPromise‘ of undefined
解决:
卸载已安装的插件
npm uninstall compression-webpack-plugin
安装固定版本插件
npm i compression-webpack-plugin@5.0.1
2、配置
在vue.config.js文件中
a: 引入
const CompressionPlugin =require('compression-webpack-plugin');
b:配置
module.exports = {
configureWebpack: {
plugins: [
new CompressionPlugin({
algorithm:'gzip', // 使用gzip压缩
test:/\.js$|\.html$|\.css$/, // 匹配文件名
filename:'[path].gz[query]', // 压缩后的文件名(保持原文件名,后缀加.gz)
minRatio:1, // 压缩率小于1才会压缩
threshold:10240, // 对超过10k的数据压缩
deleteOriginalAssets:false, // 是否删除未压缩的源文件,谨慎设置,如果希望提供非gzip的资源,可不设置或者设置为false(比如删除打包后的gz后还可以加载到原始资源文件)
})
]
},
}

注:deleteOriginalAssets默认为false,原因是如果加载gzip失败,能够加载原始文件而不至于报错。