2016-06-08 149 views
2

我有console.log到处都是。将它们全部去除并不好,因为我可能再次需要它们。有没有办法为整个反应应用程序做这样的事情?reactJS禁用console.log系统范围

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

有重载函数像你想在这里做的方式。但是,我只是在我的项目上进行文件夹搜索,并搜索替换'console.log('''with'//console.log(')的所有实例。 – Chris

回答

5

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

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

1

一个更安全的方法是不使用console.log和一个自定义记录器实现在需要的时候,你可以关掉去。

为了让你顺其自然,可以使用优秀的debug npm软件包,该软件包可以轻松关闭全局或选择性,并且可以在nodejs服务器端和客户端上运行。

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