用于开发交互式CLI应用程序的Nodejs库/模块?
一直在search这个和searchstackoverflow,但没有遇到任何东西。 我想开发一个交互式shell与节点,并想知道最好的办法。 是否有任何人可以推荐使用的图书馆?
我已经写了一个库,现在需要一个CLI接口与它交互,通过两种方法:运行带有参数的应用程序,或通过交互式shell。 例如
$ node myapp doSomething App Result: I did something $ node myapp cli Entering interactive mode... myapp> myapp> doSomething App Result: I did something myapp>
有什么build议么?
我想commander.js是你在找什么。
https://github.com/visionmedia/commander.js
http://oscar-mejia.com/blog/how-to-create-a-command-line-program-with-nodejs/
也看看REPL http://nodejs.org/api/repl.html
Vorpal是一个完全针对问题描述的框架,虽然他们称之为“ 沉浸式cli ”。
var vorpal = require('vorpal')(); vorpal .command('doSomething') .action(function (args, cb){ this.log('App Result: I did something'); cb(); }); vorpal .delimiter('myapp>') .show();
我最近开始了一个增强型REPL项目,它提供插件和多语言支持(如CoffeeScript):
http://danielgtaylor.github.com/nesh/
在构build交互式应用程序时可能对您有用。 让我知道如果你想看到Nesh的任何function!
这个问题有点老了,但是我已经给了我刚才build立的一个模块一些里程,它会启动一个交互式的类似shell的命令提示符:
https://github.com/mrvisser/node-readcommand
这个和commander不同之处在于它允许你维护shell会话状态并在Node.js内部接受命令,而不是要求每个调用都是一个无状态的重新运行的shellparsing参数。 它有效地包装节点的内部readline
模块,以提供:
- 对input进行类似shell的parsing
- 多行命令支持,通过转义或引用新行
- 命令历史logging支持(使用
readcommand.loop
) - 基于参数的自动完成(基于
readline
的基于文本的自动完成支持
希望别人也觉得它有用。
对于一个更先进,更有见解的交互式CLI框架,我也build立了node-corporal
: https : //github.com/mrvisser/node-corporal 。 这可能比您要查找的要多,但它提供了一个将CLI应用程序放在一起的结构和环境。