Vue进阶(幺玖柒):build 过程取消 console、debugger 控制台信息输出

x33g5p2x  于2021-12-30 转载在 Vue.js  
字(1.0k)|赞(0)|评价(0)|浏览(330)

一、前言

Vue项目开发过程中,会经常需要使用console.logconsole.infoalert等测试语句来输出内容,而在生产环境之中,我们不希望控制台同样输出以上信息,特别是用户信息相关。

组包前,逐一去删除、注释显然费时费力,好在Vue提供了通过配置文件修改配置变量,实现在开发环境打印,而生产环境不打印控制台信息的方法。

二、配置文件修改

修改build/webpack.prod.conf.js配置文件,找到UglifyJsPlugin配置,在compress中添加如下代码即可。

  1. new UglifyJsPlugin({
  2. uglifyOptions: {
  3. compress: {
  4. warnings: false,
  5. // 打包的时候移除console、debugger
  6. drop_debugger: true, // 移除debugger
  7. drop_console: true, // 移除console
  8. pure_funcs: ['console.log','console.info']
  9. }
  10. },
  11. sourceMap: config.build.productionSourceMap,
  12. parallel: true
  13. }),

更优的配置方式如下:

  1. new UglifyJsPlugin({
  2. uglifyOptions: {
  3. compress: {
  4. warnings: false,
  5. // 打包的时候移除console、debugger
  6. drop_debugger: process.env.NODE_ENV=== 'production', // 移除debugger
  7. drop_console: process.env.NODE_ENV=== 'production', // 移除console
  8. warnings: process.env.NODE_ENV=== 'production', // 移除告警信息
  9. pure_funcs: ['console.log','console.info']
  10. }
  11. },
  12. sourceMap: config.build.productionSourceMap,
  13. parallel: true
  14. }),

其中,process.env.NODE_ENV定义在prod.env.js文件中,

  1. module.exports = {
  2. NODE_ENV: "production"
  3. }

prod.env.js文件在config/index.jsbuild.env配置中引入。

  1. build: {
  2. env: require('./prod.env')
  3. }

三、拓展阅读

相关文章

最新文章

更多