在开发环境写了很多console.log/info/debug,在生产环境需要去掉这些console。
如果手动删除未免也太累了,再说以后想再开发还得重新写console。
事实上webpack提供了删除console的插件,在vue-cli3里面是这样用的:
首先安装terser-webpack-plugin

npm install terser-webpack-plugin -D

然后在vue.config.js文件里写插件的配置:

module.exports = {
  configureWebpack: (config)=>{
    if(process.env.NODE_ENV === 'production'){
      config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true
    }
  }
}

————————————————————————
2020.1.14补充:
上面的写法是直接修改webpack的配置,vue官方文档里说也可以返回一个将会被合并的对象,写法如下:

const TerserPlugin = require('terser-webpack-plugin')
module.exports = {
  configureWebpack: (config)=>{
    if(process.env.NODE_ENV === 'production'){
      // 返回一个将会被合并的对象
      return {
        optimization:{
  		  minimizer: [
			new TerserPlugin({
				sourceMap:false,
				terserOptions:{
				  compress:{
				    drop_console : true
				  }
				}
			})
          ]
		}
	  }
    }
  }
}

————————————————————————
2020.4.22补充:
最近在做react项目的时候发现它的webpack的配置,也可以使用terser去掉console.log。
webpack.config.prod.js:

module.exports = {
  optimization:{
    minimizer: [
	  new TerserPlugin({
	    sourceMap:false,
		terserOptions:{
		  compress:{
		    drop_console : true
		  }
		}
	  })
    ]
  }
}
Logo

前往低代码交流专区

更多推荐