我到处都有console.log。删除它们并不好,因为我可能需要它们。有没有办法可以为整个反应应用程序做这样的事情?
if(env === 'production'){
console.log= function(){}
}
答案 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]);
// }
}