Javascript 如何从节点模块中删除/禁用console.log()

Javascript 如何从节点模块中删除/禁用console.log(),javascript,node.js,node-modules,console.log,Javascript,Node.js,Node Modules,Console.log,我正在将代码推送到生产环境,该生产环境使用一个包,每当我调用其特定函数时,该包都会调用console.log() 这个函数在我的代码中被同时调用了数千次,我不希望日志记录减慢执行时间或使日志混乱 在本地,我进入了节点模块并对注销进行了注释,但生产是自动部署的,在运行之前只运行npm安装 有没有一种方法可以让我对生产线进行注释,使其在每次自动部署时都不会返回,或者禁止模块中的控制台日志?控制台。日志本身可以用空函数覆盖 // backup just in case you need it late

我正在将代码推送到生产环境,该生产环境使用一个包,每当我调用其特定函数时,该包都会调用console.log()

这个函数在我的代码中被同时调用了数千次,我不希望日志记录减慢执行时间或使日志混乱

在本地,我进入了节点模块并对注销进行了注释,但生产是自动部署的,在运行之前只运行npm安装


有没有一种方法可以让我对生产线进行注释,使其在每次自动部署时都不会返回,或者禁止模块中的控制台日志?

控制台。日志本身可以用空函数覆盖

// 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函数。

根据您的绑定器,您可以配置绑定器以删除任何控制台交互。许多捆绑包都使用正确的配置来实现这一点。否则,请在构建过程中包含一个在构建时搜索并删除控制台交互的插件。我上面评论的Webpack插件示例:问题是console.log是全局的,将影响可能提供有用输出的第三方libs。使用类似“debug”的软件包,它允许配置输出量和作用域。默认的
控制台.log
不返回任何内容,因此如果您记录其返回,则确保您将得到
未定义的
@lastr2d2的建议将在这方面表现相同。