有时候希望代码里面的debugger;或者console.log等在开发的时候有者,在正式环境的版本里面可以去掉,最近弄vue也发现这样的需求,可以使用TerserPlugin来做到
vue-cli默认已经包含了TerserPlugin可以在vue.config.js里面直接配置,直接在vue.config.js增加就可以用了
const TerserPlugin = require('terser-webpack-plugin')
我的vue.config.js使用的是chainWebpack,在下面配置了
config.optimization.minimizer([new TerserPlugin({
terserOptions: {
mangle: true, // 混淆,默认也是开的,mangle也是可以配置很多选项的,具体看后面的链接
compress: {
drop_console: true,//传true就是干掉所有的console.*这些函数的调用.
drop_debugger: true, //干掉那些debugger;
pure_funcs: ['console.log'] // 如果你要干掉特定的函数比如console.info ,又想删掉后保留其参数中的副作用,那用pure_funcs来处理
}
}
})])
对于console.log的去掉,之前有篇博客是比较简单的方式干掉
正式环境版本去掉console.log的打印
terser-webpack-plugin相关的配置项和信息
https://github.com/terser/terser
https://webpack.docschina.org/plugins/terser-webpack-plugin/
网友评论