//安装
npm install compression-webpack-plugin --save-dev
// 在vue.config.js 中配置下列属性
//引入该插件
const CompressionWebpackPlugin = require("compression-webpack-plugin")
//匹配此 {RegExp} 的资源
const productionGzipExtensions = /\.(js|css|json|txt|html|ico|svg)(\?.*)?$/i
module.exports = {
configureWebpack: config => {
const plugins = []
// start 生成 gzip 压缩文件
plugins.push(
new CompressionWebpackPlugin({
filename: "[path].gz[query]", //目标资源名称
algorithm: "gzip",
test: productionGzipExtensions, //处理所有匹配此 {RegExp} 的资源
threshold: 10240,//只处理比这个值大的资源。按字节计算(楼主设置10K以上进行压缩)
minRatio: 0.8 //只有压缩率比这个值小的资源才会被处理
deleteOriginalAssets: true //是否删除原文件
})
);
// End 生成 gzip 压缩文件
config.plugins = [...config.plugins, ...plugins];
}
}
!!!!报错的解决!!!!
VUE 出现Cannot read property ‘tapPromise‘ of undefined问题
解决方法
compression-webpack-plugin 目前最新版是 7.1.2 更换低版本的包可以解决(@5.0.1 或者 @6.1.1)
运行命令:
①、先执行卸载命令->npm uninstall compression-webpack-plugin
②、执行安装命令->npm i compression-webpack-plugin@5.0.1