webpack打包关于插件的坑

compression-webpack-plugin

插件文档

  1. 安装使用 compression-webpack-plugin 插件对文件进行压缩
npm i compression-webpack-plugin
  1. 使用
const CompressionPlugin = require('compression-webpack-plugin')
// ...
module.exports = {
	// ...
	configureWebpack: config => {
		config.plugins.push(
        // 默认使用 gzip 压缩
        new CompressionPlugin({
          algorithm: 'gzip',
          // 压缩 js/html/css 文件
          test: /\.js$|\.html$|\.css/,
          threshold: 20480,  // 超过 20480 被压缩
          deleteOriginalAssets: false // 是否删除源文件
        })
      )
	}
}
  1. 打包。报错!!!!!
    默认安装的compression-webpack-plugin是7.0.1版本的。但是compression-webpack-plugin": “^7.0.0”,需要"webpack": "^5.9.0"
    文档
Cannot read property 'tapPromise' of undefined
  1. 解决办法:降低版本
npm uninstall compression-webpack-plugin
npm i compression-webpack-plugin@5.0.1

uglifyjs-webpack-plugin

插件文档

  1. 安装 uglifyjs-webpack-plugin 插件对js文件进行压缩
npm i uglifyjs-webpack-plugin
  1. 使用
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
// ...
module.exports = {
	//...
	configureWebpack: config => {
		//...
		config.plugins.push(
	        new UglifyJsPlugin({
	          // UglifyJS 压缩选项
	          uglifyOptions: {
	            // 删除注释
	            output: {
	              comments: false
	            },
	            // 删除 console debugger warning
	            compress: {
	              warnings: false,
	              // 如果需要查看 console.log 打包的之前可以将这个值设置为 false
	              // drop_console: true,
	              drop_debugger: true
	            }
	          },
	          // 启用/禁用多进程并行运行。
	          parallel: true,
	          // 使用sourceMap将错误消息位置映射到模块(这会减慢编译速度)。如果您使用自己的minify函数,请阅读minify部分以正确处理sourceMap。
	          sourceMap: false
	        })
      )
	}
}
  1. 打包,然后报错。。。
`warnings` is not a supported option
  1. 解决办法。
    降低版本。将版本降低为 1.x即可
    npm uninstall uglifyjs-webpack-plugin
    npm i uglifyjs-webpack-plugin@1.1.1
    
    修改配置,将 compress.waring 删除,修改为使用 warningsFilter
    config.plugins.push(
            new UglifyJsPlugin({
              // UglifyJS 压缩选项
              uglifyOptions: {
                // 删除注释
                output: {
                  comments: false
                },
                // 删除 console debugger warning
                compress: {
                  // 不使用改 warnings
                  // warnings: false,
                  // 如果需要查看 console.log 打包的之前可以将这个值设置为 false
                  // drop_console: true,
                  drop_debugger: true
                }
              },
              // 启用/禁用多进程并行运行。
              parallel: true,
              // 使用sourceMap将错误消息位置映射到模块(这会减慢编译速度)。如果您使用自己的minify函数,请阅读minify部分以正确处理sourceMap。
              sourceMap: false,
              // 修改为使用 warningsFilter 去除警告
              warningsFilter: () => false
            })
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值