【问题标题】:Disable Node REPL pre-evaluation?禁用节点 REPL 预评估?
【发布时间】:2021-08-26 18:18:05
【问题描述】:

在 Node (v16.7.0) REPL 中,Node 会在我完成输入之前尝试评估我的语句。例如,如果我键入2 + 2,它会在下一行显示一个微弱的4在我按下 Enter 键之前。有没有办法禁用这种行为?在大多数情况下,这不是问题。但是当我执行昂贵的操作时,REPL 会在我尝试完成输入语句时滞后或冻结。需要明确的是,问题不是解释器正在打印输出;这是它试图在我完成输入之前评估我的陈述。提前感谢您的帮助!

【问题讨论】:

  • 这能回答你的问题吗? Prevent Node.js repl from printing output
  • 谢谢@esqew,但不,这并不能解决问题。我认为这只会阻止打印输出。问题不在于正在打印输出;这是解释器在我完成输入之前试图评估我的陈述。

标签: node.js read-eval-print-loop


【解决方案1】:

REPL library 称之为预览(在链接中搜索 preview 以获取更多信息)。我不知道如何使用命令行选项(或其他类型的配置选项)启动默认节点 REPL,以便不显示预览,但 REPL 本身是一个您可以使用的库,具有所有默认值(或其他你喜欢)并删除预览 - 为此检查REPL library options

一个基本的例子是创建这个脚本:

#!/usr/bin/env node

const repl = require('repl');

repl.start({
  preview: false
});

确保您也将其作为可执行文件(在 Linux/Mac 中从命令行使用chmod +x name-of-repl-script 从终端),然后直接运行该脚本而不是 node。 或者,您可以使用 node name-of-repl-script 运行脚本(这里假设 node 是 NodeJS REPL 可执行文件并且它在路径中)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 2014-10-14
    • 2011-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多