Node.js REPL "undefined"。

18

从node 0.4.11升级到0.6.15后,发现在REPL(不带参数运行node)中,大多数命令或回车后都会持续输出"undefined"...

这很烦人,让我感到很苦恼,如何禁用这个功能?

> 
undefined
> 
undefined
> 
undefined
> 
undefined
> var x = 2
undefined
> x
2
>

2
相关,node.js在控制台上显示“undefined” - Octavian Helm
谢谢,我知道什么是未定义的,但我想在从命令行运行repl时摆脱它。这很分散注意力。 - 7zark7
我不太明白为什么如果我输入 var a=2;,它会打印 undefined? - landed
4个回答

17

另一种调用节点而不返回未定义命令的方法是:

node -e "require('repl').start({ignoreUndefined: true})"

从命令行执行


1
我更喜欢这个。我可以清楚地知道它在做什么。 - Chev

12

请参考 Node.js 的REPL文档页面。

具体地,看这个:

如果将ignoreUndefined设置为true,则当命令的返回值是undefined时,repl将不会输出该返回值。默认为false

示例代码:

var net = require("net"),
    repl = require("repl");

repl.start(null, null, null, null, true);

示例输出:

> var x
> var blah
此外,您可以将 node 设置为别名。
node -e "require('repl').start(null, null, null, null, true)"

我看到了,但很抱歉我不太明白如何在命令行中运行node时进行设置。我没有从脚本中启动repl。这里提到了repl.start(...)等内容。 - 7zark7
2
在@deltanovember的示例代码基础上进行扩展,为了获得所需的行为,请使用node -e "require('repl').start(null, null, null, null, true)"命令行。也许可以给它取个别名? - user1207456
但是如果我只想在返回undefined很重要的情况下显示undefined呢?比如在var和let的情况下,永远不可能返回任何东西? - still_dreaming_1

7
# node -i -e "repl.repl.ignoreUndefined=true"

我的新_node别名(v6.11.2)。

我认为这比其他方法更有优势,因为它影响当前/默认的repl上下文...这就是我所有的node命令历史记录所在的地方!


2

在与此答案相似的线路上

你可以在REPL会话中运行repl.repl.ignoreUndefined=true

一个示例代码:

Welcome to Node.js v12.13.1.
Type ".help" for more information.
> var x
undefined
> repl.repl.ignoreUndefined=true
true
> var y = 10
> _
true
> console.log(y)
10
>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接