为我的应用程序创建 "debug mode" 变量的最佳做法?

Best practices for creating a "debug mode" variable for my app?

我正要注释掉刚刚 printed/console.logged 调试信息的代码块,我想,为什么我不创建一个全局范围的“调试”变量,而不是注释这段代码出来,在它周围放一个if (DEBUG == 1) {}

我问的原因是因为我目前正在使用 javascript,我的代码分布在几个 .js 文件中。如果我在 app.js 中创建一个 DEBUG 变量,我将需要从 app.js 导出它并在其他文件中需要它;这是否符合最佳实践?有没有更好的方法来实现我的想法?

有很多方法可以做到这一点。大多数日志记录库都有 levels 允许您只输出或查看级别高于某个最低级别的消息。或者,如果您只是使用 console.log 或 console.debug 和内容来代替更强大的日志流,您可以使用自己的日志库来更改它们的行为;例如,如果你有一个导出你的 debug() 函数的 debug.js 文件,import/require 它在每个其他文件中只调用一次 debug() 而不是 console.debug() (或者您实际上可以重新分配 console.debug = debug 但这将对任何依赖项或依赖代码产生潜在的副作用。

debug.js 中,您的函数可以简单地检查环境变量(在 node.js 或类似的环境中)或全局变量(在浏览器中)甚至硬编码标志,并立即 return(什么都不做)如果你在生产中或者不想打印调试消息。

以 bunyan 的日志级别为例,了解流行的日志库如何处理此问题:https://www.npmjs.com/package/bunyan#levels

如果您正在对浏览器进行编程并且想要一个快速而肮脏的全局变量,您可以这样做 window.myVar = 'whatever'