uniapp vscode如何一键关闭log打印

在uniapp开发中,使用vscode调试时如何一键关闭所有console.log打印?项目里有很多调试日志,发布时需要手动删除很麻烦,有没有配置或插件能批量禁用这些log输出?

2 回复

在VSCode中,使用uniapp开发时,可在manifest.json中设置"debug": false关闭所有console.log。也可通过条件编译,在发布时屏蔽log代码。


在uni-app项目中,可以通过以下方法一键关闭console.log打印:

方法一:条件编译(推荐)

在main.js或App.vue中添加:

// 生产环境关闭console.log
// #ifndef MP-WEIXIN
if (process.env.NODE_ENV === 'production') {
  console.log = function() {}
  console.info = function() {}
  console.warn = function() {}
  console.error = function() {}
}
// #endif

方法二:使用插件

安装babel插件:

npm install babel-plugin-transform-remove-console --save-dev

在babel.config.js中配置:

module.exports = {
  presets: [
    ['@vue/app', {
      useBuiltIns: 'entry'
    }]
  ],
  plugins: [
    // 生产环境移除所有console
    process.env.NODE_ENV === 'production' ? 'transform-remove-console' : ''
  ]
}

方法三:自定义封装

创建utils/log.js:

const log = {
  info: function(...args) {
    if (process.env.NODE_ENV !== 'production') {
      console.log(...args)
    }
  },
  error: function(...args) {
    if (process.env.NODE_ENV !== 'production') {
      console.error(...args)
    }
  }
}

export default log

使用时:

import log from '@/utils/log.js'

log.info('这条日志在生产环境不会显示')

推荐使用方法一,简单有效且不会影响开发调试。

回到顶部