webpack对js进行压缩处理

3 篇文章 0 订阅

webpack对js进行压缩处理

目前针对 webpack 配置有两个插件可以选择

  • uglifyjs-webpack-plugin
  • terser-webpack-plugin

1 uglifyjs-webpack-plugin

使用

npm install uglifyjs-webpack-plugin --save-dev

webpack配置

plugins: [
		//删除dist_h5目录
		new cleanWebpackPlugin(['dist_h5'], {
			root: path.resolve(__dirname, '../'), //根目录
			verbose: true, //开启在控制台输出信息
			dry: false,
		}),
		new webpack.DefinePlugin({
			'process.env.BASE_URL': '\"' + process.env.BASE_URL + '\"'
		}),
		// 分离css插件参数为提取出去的路径
		new extractTextPlugin({
			filename: 'css/[name].[hash:8].min.css',
		}),
		//压缩css
		new OptimizeCSSPlugin({
			cssProcessorOptions: {
				safe: true
			}
		}),
		// 上线压缩 去除console等信息webpack4.x之后去除了webpack.optimize.UglifyJsPlugin
		new UglifyJSPlugin({
			uglifyOptions: {
				output: {
					comments: false // 去除注释
				},
				compress: {
					warnings: false,
					drop_debugger: false,
					drop_console: true,
				}
			}
		}),
	],

2 terser-webpack-plugin

使用

npm install terser-webpack-plugin --save-dev

webpack配置

plugins: [
		//删除dist_h5目录
		new cleanWebpackPlugin(['dist_h5'], {
			root: path.resolve(__dirname, '../'), //根目录
			verbose: true, //开启在控制台输出信息
			dry: false,
		}),
		new webpack.DefinePlugin({
			'process.env.BASE_URL': '\"' + process.env.BASE_URL + '\"'
		}),
		// 分离css插件参数为提取出去的路径
		new extractTextPlugin({
			filename: 'css/[name].[hash:8].min.css',
		}),
		//压缩css
		new OptimizeCSSPlugin({
			cssProcessorOptions: {
				safe: true
			}
		}),
    
		// 上线压缩 去除console等信息
		new TerserWebpackPlugin({
			parallel: true,
			extractComments: true,
			terserOptions: {
				ecma: undefined,
				warnings: false,
				parse: {},
				compress: {
					drop_console: true,
					drop_debugger: false,
					pure_funcs: ['console.log'] // 移除console
				}
			},
		})

	],

注意

  • uglifyjs-webpack-plugin 不支持es6语法,可以使用 terser-webpack-plugin 进行替代

  • 若正确配置之后,仍然不能正确去除console,请检查是否添加了下面配置项,导致代码被转成了字符串,注释无法剔除

    devtool: 'cheap-module-eval-source-map'
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值