reactJS 在系统范围内禁用 console.log

IT技术 javascript reactjs
2021-04-30 10:06:25

我到处都有console.log。将它们全部删除并不好,因为我可能会再次需要它们。有没有办法为整个react应用程序做这样的事情?

if(env === 'production'){
  console.log= function(){}
}
4个回答

鉴于您正在使用 React,很可能您已经将 babel 作为构建过程的一部分。

你可以使用这个babel 插件在构建阶段删除所有的 console.* 函数调用。

在您的index.js文件中,检查您是在开发模式还是生产模式下运行。
如果您处于生产模式,请禁用 console.log。

if (process.env.NODE_ENV !== "development")
    console.log = () => {};

更安全的方法是不使用console.log并使用自定义记录器实现,您可以在需要时将其关闭。

为了让你开始做一些事情,你可以使用优秀的debug npm 包,它可以轻松地全局或选择性地关闭,并且它可以在 nodejs 服务器端和客户端上运行。

export function consoleLog() {
  const args = [...arguments];
  for (let i = 0; i < args.length; i++) {
    console.log(args[i]);
  }
}

将此文件保存在某处,然后在所有文件中搜索 console.log 并替换为 consoleLog 并确保将其导入到要使用它的每个文件的顶部。

当您构建生产包时,您可以简单地将其更改为...

export function consoleLog() {
  // const args = [...arguments];
  // for (let i = 0; i < args.length; i++) {
  //  console.log(args[i]);
  // }
}