VS Code & Node.js:使用 console() 而不是 console.log()?

VS Code & Node.js: Use console() instead of console.log()?

我正在编写 JavaScript 表达式以用于 specialized geospatial software

在地理空间软件中,只有console()有效,console.log()无效。


当我工作时,我正在 VS Code using Node.JS 中调试我的地理空间脚本(因为地理空间软件没有 linting 功能等)。

我的理解是 Node.js 使用 console.log() 语法,而不是 console()

因此,当在两个程序之间来回移动脚本时,我需要做一个查找和替换以从console()切换到console.log()(反之亦然)。这变得乏味了。


问题:

在 VS Code / Node.js 中,有没有办法使用 console() 而不是 console.log()?在开发我的脚本时,这将使事情变得容易得多。我将能够拥有适用于这两个程序的标准脚本。

本人新手,望通俗易懂

In VS Code / Node.js, is there a way to use console() instead of console.log()?

我想不出一种不会破坏您可能正在使用的其他模块中的代码的方法,因为它需要重新分配 console 全球,那是……全球。 (我在下面包含了一个可能的选项,但是......我不喜欢它。)

但即使你能找到办法做到这一点,我也不会。相反,在脚本的顶部,我会有类似的东西:

const log = typeof console === "function" ? console : console.log;

...然后在整个脚本中使用 log(或您想要使用的任何名称)。它将引用适当的函数。


这里有一些可能不会破坏其他代码的东西:

console = Object.assign(console.log, console);

console 替换为 console.log,但也将所有 console 属性(好吧,无论如何都是自己的可枚举属性)作为属性放在函数上,因此 consoleconsole.log(以及 console.error 等)有效。但是不能保证毫无戒心的模块中的代码不会 if (typeof console === "object") 来决定它是否可以使用 console,那会失败,因为 typeof 会 return "function" 取而代之。

再说一遍:我会使用上面的第一个解决方案:一个独立的 log 函数。