我想在节点REPL之上运行一个进程。这里的目标是允许用户通过简单地在其终端中键入命令来使用节点REPL,但是将一些模块自动加载到该REPL中。
这个问题的解决方案最好是以某种方式将stdin来回传送到后台运行的REPL,但如果REPL在允许用户输入stdin之前只是加载了一些模块,那么也是令人满意的。
我可以做的是使用process.stdin.resume()
来允许用户输入命令,评估它们,并在已经运行的节点进程内处理它们,但这是现有节点REPL的复制功能。
有没有办法做到这一点? child_process
是否有这种控制的媒介?
任何提议的解决方案也可以使用es6。提前谢谢。
编辑:请让我知道我可以做些什么来改善这个问题,因为它已被多次查看,但没有被触及。我无法提供一个例子,因为我不知道如何做这样的事情。
答案 0 :(得分:0)
您是否看过内置的repl模块?
https://nodejs.org/api/repl.html
看起来它涵盖了你想要做的一切。
如果您想要自定义上下文,则可能需要传递自定义eval
功能。节点文档有示例。