2012-10-17 3 views
11

これを検索してstackoverflowを検索していますが、何も出てこないのです。私は、ノードを持つ対話型シェルを開発し、このための最良の方法について疑問を持っています。誰もが使用することを推奨できる図書館はありますか?対話型CLIアプリケーションを開発するためのNodejsライブラリ/モジュール?

私はライブラリを作成しましたが、CLIインターフェイスが2つの方法、つまりパラメータでアプリケーションを実行する方法、または対話型シェルを使用して対話するようにしました。例えば

$ node myapp doSomething 
App Result: I did something 
$ node myapp cli 
Entering interactive mode... 
myapp> 
myapp> doSomething 
App Result: I did something 
myapp> 

お勧めはありますか?

+0

注:私は、現在のパラメータ、私は – Brett

答えて

12
+0

ありがとうvinayrを構築しようとしていますその主にインタラクティブでprocess.argv使用して構築しています。 REPLはうまくいくはずです。 – Brett

+2

Inquirerは妥当性確認と素敵なプロンプトを表示する素晴らしい方法です: https://github.com/SBoudrias/Inquirer.js/ – berdario

+0

「commander.js」がインタラクティブな方法を教えてください。 cliオプション '$ myscript.js -foo -bar -baz'を受け入れるだけで何もできません。インタラクティブなものはない。なぜあなたはそれを提案しましたか? – Green

3

が、私は最近、プラグインや(CoffeeScriptのような)多言語サポートを提供強化REPLのためのプロジェクトを開始しましたhttp://nodejs.org/api/repl.html REPLを見て:

​​

fインタラクティブアプリを構築するときに使用します。あなたがNeshの任意の機能を見たいかどうか教えてください!

+0

はそれを見てくれます、ありがとうダニエル。 – Brett

0

この質問は少し古いですが、私は、対話型シェルのようなコマンドプロンプトを起動します、私はしばらく前に建てモジュールにはいくつかの走行距離を与えてくれた:

https://github.com/mrvisser/node-readcommand

への主な違いコマンダーのようなものでは、シェルセッションの状態を維持し、Node.jsの内部でコマンドを受け入れることができます。これは、すべての呼び出しをシェルの解析された引数でステートレスに再実行することです。使用しているとき(入力の

  • シェルに似た構文解析を
  • 複数行のコマンドをサポート
  • コマンド履歴のサポートを改行をエスケープするか、その上に引用して:それは効果的に提供するために、ノードの内部readlineモジュールをラップreadcommand.loop
  • 引数ベースのオートコンプリート(readlineのテキストベースのオートコンプリートのサポートを中心に

を包ん他の誰かを願ってそれも有用であることがわかります。

さらに高度な対話型CLIフレームワークについては、node-corporalhttps://github.com/mrvisser/node-corporalも作成しました。これはおそらくあなたが探している以上のものですが、それはCLIアプリケーションを一緒に鞭打つための構造と環境を提供します。

5

Vorpalは、「immersive cli」と呼んでいますが、質問の内容とまったく同じ枠組みです。

var vorpal = require('vorpal')(); 

vorpal 
    .command('doSomething') 
    .action(function (args, cb){ 
    this.log('App Result: I did something'); 
    cb(); 
    }); 

vorpal 
    .delimiter('myapp>') 
    .show(); 
関連する問題