项目中用到的webpack优化

const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const CompressionWebpackPlugin = require('compression-webpack-plugin');
chainWebpack: (config) => {
 if (isProduction) {
      config.plugin('uglifyJs').use(UglifyJsPlugin, [
        {
          uglifyOptions: {
            warnings: false,
            compress: {
              // 移除 debugger
              drop_debugger: true,
              // 移除console.*函数
              drop_console: true,
              // 移除console.log的引用
              // 例如 log = console.log, 移除log,同时移除console.log
              pure_funcs: ['console.log'],
            },
          },
          // 多进程并行运行
          parallel: true,
          // 抽取注释
          extractComments: true,
        },
      ]);
      config.plugin('compressionPlugin').use(
        new CompressionWebpackPlugin({
          test: /\.(js|css|json|ico|svg|xml)$/, // 匹配文件格式
          algorithm: 'gzip',
          threshold: 10240, // 对超过10k的数据压缩
          minRatio: 0.8, // 压缩比
          deleteOriginalAssets: false, //是否删除源文件
        })
      );
    }
}

例如pic.xml压缩之后就会变成pic.xml.gz

2.xml2js 是commonJS写的,所以不用转换

  configureWebpack: {
    //第三方模块没有AMD/commonJS规范版本,不进行转换和解析
    module: {
      noParse: /^(xml2js)$/,
    },
  },

3.代码层面

减少 import *as R from 'ramda' 这种全局引用 和main.js的全局引用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值