12

これをグーグルで検索してstackoverflowを検索しましたが、何も見つかりません。ノードを使用してインタラクティブなシェルを開発したいのですが、これに対する最善のアプローチについて疑問に思っています。誰もが使用することを推奨できるライブラリはありますか?

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

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

助言がありますか?

4

4 に答える 4

14

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もご覧ください。

于 2012-10-17T08:34:33.643 に答える
5

Vorpal is a framework exactly for what the question describes, although they call it an '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();
于 2015-09-26T18:01:58.513 に答える
3

最近、プラグインと多言語サポート (CoffeeScript など) を提供する拡張 REPL のプロジェクトを開始しました。

http://danielgtaylor.github.com/nesh/

インタラクティブなアプリを構築するときに役立つ場合があります。Nesh の機能を知りたい場合はお知らせください。

于 2013-04-03T15:46:31.377 に答える
0

この質問は少し古いですが、インタラクティブなシェルのようなコマンドプロンプトを起動する、少し前に構築したモジュールにいくらかのマイレージを与えました:

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

Commander のようなものとの主な違いは、シェルのセッション状態を維持し、Node.js で内部的にコマンドを受け入れることができることです。これは、すべての呼び出しをシェルの解析済み引数を使用してステートレスに再実行する必要があるのとは対照的です。readlineノードの内部モジュールを効果的にラップして、以下を提供します。

  • 入力のシェルのような解析
  • 改行をエスケープするか引用符で囲むことによる複数行コマンドのサポート
  • コマンド履歴のサポート (使用時readcommand.loop)
  • 引数ベースのオートコンプリート (readlineテキストベースのオートコンプリートのサポートをラップ

他の誰かにも役立つことを願っています。

より高度で独断的な対話型 CLI フレームワークのために、httpsnode-corporal : //github.com/mrvisser/node-corporal も作成しました。これはおそらくあなたが探している以上のものですが、CLI アプリをまとめるための構造と環境を提供します。

于 2015-05-05T12:36:31.430 に答える