You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vite构建时移除console.log但保留console.error的实现方法

解决方案:无需额外插件或Rollup,调整esbuild配置即可实现

你当前的drop: ['console']会移除所有console相关调用,包括console.error,要只删除console.log,可以改用esbuild的pure选项来精准控制:

esbuild: {
  // 生产环境标记console.log为无副作用函数,构建时自动移除
  pure: mode === 'production' ? ['console.log'] : undefined,
  // 保留debugger的移除逻辑
  drop: mode === 'production' ? ['debugger'] : undefined
}

原理说明

pure选项的作用是告诉esbuild:指定的函数调用没有任何副作用(比如不会改变外部状态、不影响程序逻辑),因此在生产构建时,会自动移除那些没有被使用返回值的调用。这样console.log会被清理掉,而console.error因为没被标记,会完整保留下来。

如果你的项目需要更复杂的日志过滤逻辑,也可以考虑使用Rollup插件(比如rollup-plugin-terser),但上述esbuild的方案已经能满足你的需求,无需额外依赖。

内容的提问来源于stack exchange,提问作者itsDanial

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 16:49:49