reactJS禁用console.log系统范围

时间:2016-06-08 16:56:44

标签: javascript reactjs

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

if(env === 'production'){
  console.log= function(){}
}

4 个答案:

答案 0 :(得分:8)

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

您可以使用此babel plugin删除构建阶段中的所有控制台。*函数调用。

答案 1 :(得分:7)

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

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

答案 2 :(得分:1)

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

为了让你得到一些东西,你可以使用优秀的debug npm包,它可以轻松地全局或有选择地关闭它,它可以在nodejs服务器端和客户端都工作。

答案 3 :(得分:0)

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]);
  // }
}