问题描述
我将代码推送到使用一个包的生产环境,每次我调用一个特定的函数时都会调用 console.log()。
此函数在我的代码中被同时调用数千次,我不希望日志记录减慢执行时间或使日志混乱。
在本地,我进入了节点模块并注释了注销,但生产是自动部署的,并且在运行之前只运行 npm install。
有没有办法让我在生产中注释掉该行,使其在每次自动部署时都不会返回,或者我有办法禁止模块中的控制台日志?
解决方法
console.log
本身可以被一个空函数覆盖。
// backup just in case you need it later somewhere
var oldConsoleLog = window.console.log;
window.console.log = () => {};
但是,建议对麻烦的包进行一些调查,大多数包仅在其开发版本中登录,也许您应该使用该包的生产版本。
此外,还有一些 babel/webpack 插件可以为您删除控制台语句。例如 babel-plugin-transform-remove-console
,您可以尝试通过在开头写入 console.log = function() {}
来重新定义 console.log 函数。