用于开发交互式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议么?

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应用程序放在一起的结构和环境。