求教如何在 Node.js 程序运行时优雅地实现 cli 交互?

2019-05-28 23:27:23 +08:00
 kid740246048

预期目标大致如上图所示。

我当前是用 readLine 模块去读取每次输入的字符串并处理字符串,然后再分发到不同的处理函数。

但是感觉这样的方法在处理字符串时要考虑各种命令+参数的可能,还要考虑可能的错误输入,不仅逻辑复杂,而且非常不优雅。

在网上搜了一圈,有推荐用 inquirer 模块的,但我了解了一下,这个模块似乎是用于“提出问题-输入回答”这样的模式,似乎不太契合 cli 交互这种逻辑。

那么问题来了,有没有适合于我这种需求的模块?在此先谢过各位

4070 次点击
所在节点    Node.js
6 条回复
galikeoy
2019-05-29 00:06:01 +08:00
不用谢
ruoxie
2019-05-29 00:16:31 +08:00
commander
EPr2hh6LADQWqRVH
2019-05-29 00:34:50 +08:00
这种东西我以前写过,没有现成的,最后越来越复杂会无限接近 Shell
所以,不如直接用 shell 吧,你程序创建一个本地 socket,再弄一个命令进程通过这个 socket 和主进程通信。
azh7138m
2019-05-29 01:08:27 +08:00
我觉得像是一个 repl https://nodejs.org/api/repl.html
就是实现一个 Custom Evaluation Function
kid740246048
2019-05-30 07:40:08 +08:00
@avastms 但我想要的更多还是一些自定义的命令,用 shell 去运行的话,还要定义一堆函数、alias 之类的,可能还是上面提到的 repl 更适合我
kid740246048
2019-05-30 07:40:57 +08:00
@azh7138m 这个好像比较适合,我先去研究研究

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/568576

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX