使用 babel-plugin-transform-remove-console 插件可自动移除 console 打印,开发环境保留、生产环境剔除,且通过 exclude 选项保留 error 和 warn 日志便于异常监控。

用 Babel 自动移除 console 打印,核心是借助插件 babel-plugin-transform-remove-console,并在构建时按环境精准控制——开发保留、生产剔除,不手动删代码,也不影响调试。
安装插件
在项目根目录执行:
npm install babel-plugin-transform-remove-console --save-dev- 注意拼写:是
transform,不是transfrom(常见拼错导致插件不生效)
配置 babel.config.js(推荐方式)
在项目根目录创建或编辑 babel.config.js,写入以下内容:
const prodPlugins = [];
if (process.env.NODE_ENV === 'production') {
prodPlugins.push([
'transform-remove-console',
{
exclude: ['error', 'warn'] // 保留 console.error 和 console.warn
}
]);
}
module.exports = {
presets: ['@vue/cli-plugin-babel/preset'], // Vue 项目常用 preset
plugins: prodPlugins
};
- 只在
NODE_ENV=production时启用插件,本地npm run serve不受影响 -
exclude配置很实用:线上仍可看到报错和警告,便于监控异常 - npm run serve)或重新打包(
npm run build)才生效
验证是否生效
打包后检查生成的 dist/js/*.js 文件:
立即学习“Java免费学习笔记(深入)”;
- console.log、
console.info等,应已完全消失 - console.error('xxx') 和
console.warn('yyy')依然存在
其他注意事项
不用改源码、不依赖 UglifyJS 或 Terser 的压缩级处理,Babel 在语法转换阶段就完成移除,更早、更干净:
- .babelrc,逻辑相同,但
babel.config.js更推荐(支持动态判断) - staging、
preprod,可扩展判断条件:['production', 'staging'].includes(process.env.NODE_ENV) - vite-plugin-remove-console



















