vue-cli3构建的项目使用compression-webpack-plugin 进行GZip压缩

使用vue-cli3搭建的vue 项目是没有 productionGZip配置的,需要你安装插件compression-webpack-plugin并在vue.config.js中进行相应的配置才能实现项目的性能优化

1、安装插件:compression-webpack-plugin

npm i -D compression-webpack-plugin

2、在 vue.config.js 文件中配置 compression-webpack-plugin

const compressionWebpackPlugin = require('compression-webpack-plugin'); //引入插件
const productionGZipExtensions = ['js', 'css']; //压缩的文件类型
module.exports = {
  //简单配置
    configureWebpack: {
      plugins: [
        new compressionWebpackPlugin({
          //[file] 会被替换成原始资源。[path] 会被替换成原始资源的路径, [query] 会被替换成查询字符串。默认值是 "[path].gz[query]"。
          asset: '[path].gz[query]', // 提示compression-webpack-plugin@3.0.0的话asset改为filename
          //可以是 function(buf, callback) 或者字符串。对于字符串来说依照 zlib 的算法(或者 zopfli 的算法)。默认值是 "gzip"。
          algorithm: 'gzip',
          //所有匹配该正则的资源都会被处理。默认值是全部资源。
          test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
          //只有大小大于该值的资源会被处理。单位是 bytes。默认值是 0。
          threshold: 10240,
          //只有压缩率小于这个值的资源才会被处理。默认值是 0.8。
          minRatio: 0.8
        })
      ] 
    },

    //复杂配置
    /*configureWebpack: config => {
      if(process.env.NOVE_ENV === 'production'){
        config.push(
          new compressionWebpackPlugin({
            asset: '[path].gz[query]', // 提示compression-webpack-plugin@3.0.0的话asset改为filename
            algorithm: 'gzip',
            test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
            threshold: 10240,
            minRatio: 0.8
          })
        )       
      }
    }else{} 
   */  

}

3、使用 compression-webpack-plugin 后打包项目过程中报错的解决方式:


① 如果 compression-webpack-plugin@3.0.0 的话,就把 vue.config.js 中关于 compression-webpack-plugin 配置 asset 改为 filename

② 如果构建过程中提示一些属性找不到,那么可以把项目中的 package.lock.json 和 node_modules 删除,
并把 package.json 中关于 compression-webpack-plugin 版本调低,如:1.1.12,然后重新 npm install 和 npm run build

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值