【发布时间】:2021-08-03 16:15:20
【问题描述】:
我需要自定义 REPL 输入/输出流。例如,当某些事件发生时,我需要将一段脚本传递给 REPL,并获取它的输出并对其进行处理。
为了让您更清楚地描述它,我正在开发一个提供 REPL 的vscode plugin (github: source code)。在我的例子中,我有一个vscode WebView,从那里我得到用户输入,然后我想将该输入传递给节点 REPL 并得到它的输出并将其显示给用户。
那么,我该如何实现呢? 如果您需要更多信息,请告诉我。提前致谢。
编辑 1:
const replServer = repl.start({
input: /* what should be here? */,
output: /* what should be here? */
});
编辑 2:
谁能解释一下上面例子中input/output参数的用法?
【问题讨论】:
-
你是怎么解决这个问题的?
-
@KelvinOmereshone 这个问题没有像我预期的那样解决;相反,我创建了一个自定义 VM。请参阅:stackoverflow.com/questions/67173347/… 和 stackoverflow.com/questions/67322922/context-preserving-eval
-
有趣的是,我能够自己提供自定义流并且它可以工作,但是出现了范围问题,好像我在第一次运行时声明了一个变量,即使在退出和重启 REPL
-
@KelvinOmereshone 那么您能否与我们分享您的方法来回答这个问题?它会很有价值。
标签: node.js visual-studio-code node-modules read-eval-print-loop node-repl