Node.js 用于开发交互式CLI应用程序的Nodejs库/模块?
我一直在谷歌上搜索这个并搜索stackoverflow,但没有发现任何东西。我想开发一个带有节点的交互式shell,并想知道实现这一点的最佳方法。有没有任何人可以推荐使用的图书馆 我已经编写了一个库,现在需要一个CLI接口与之交互,方法有两种:使用参数运行应用程序,或通过交互式shell。e、 gNode.js 用于开发交互式CLI应用程序的Nodejs库/模块?,node.js,command-line-interface,interactive,Node.js,Command Line Interface,Interactive,我一直在谷歌上搜索这个并搜索stackoverflow,但没有发现任何东西。我想开发一个带有节点的交互式shell,并想知道实现这一点的最佳方法。有没有任何人可以推荐使用的图书馆 我已经编写了一个库,现在需要一个CLI接口与之交互,方法有两种:使用参数运行应用程序,或通过交互式shell。e、 g $ node myapp doSomething App Result: I did something $ node myapp cli Entering interactive mode... m
$ node myapp doSomething
App Result: I did something
$ node myapp cli
Entering interactive mode...
myapp>
myapp> doSomething
App Result: I did something
myapp>
有什么建议吗?我想commander.js就是你要找的
另请看REPL我最近启动了一个增强型REPL项目,该项目提供插件和多语言支持(如CoffeeScript):
在构建交互式应用程序时,它可能对您很有用。如果您想在Nesh中看到任何功能,请告诉我 这个问题有点老了,但我给了我刚才构建的一个模块一些启示,该模块将启动一个类似shell的交互式命令提示符: 与commander相比,它的关键区别在于它允许您在Node.js中维护shell会话状态并在内部接受命令,而不是要求每次调用都使用shell解析的参数以无状态重新运行。它有效地包装了节点的内部
readline
模块,以提供:
- 输入的shell式解析
- 通过转义新行或引用新行来支持多行命令
- 命令历史记录支持(使用
时)readcommand.loop
- 基于参数的自动完成(环绕
s基于文本的自动完成支持readline
节点库
:。这可能比您想要的要多,但它为组合CLI应用程序提供了一个结构和环境。是一个完全符合问题描述的框架,尽管他们称之为“”
注意:我目前正在使用带有参数的process.argv进行构建,主要是我尝试构建的交互式Inquirer似乎是一个不错的选择,带有验证和良好的提示:只告诉我
commander.js
是如何交互的?它除了接受cli选项$myscript.js-foo-bar-baz
之外什么都做不了不切实际。你为什么提出这个建议?@berdario基于Inquirer.js构建了一个API来构建CLI,这似乎是他的要求。*免责声明:我制作了Vorpal。
var vorpal = require('vorpal')();
vorpal
.command('doSomething')
.action(function (args, cb){
this.log('App Result: I did something');
cb();
});
vorpal
.delimiter('myapp>')
.show();