しばらくの間、私は今のところうまくいかない何かに到達しようとしています.
nodejs では、対話型の sh-command を実行し、コマンドが終了した後に sh-command の出力を処理するのが好きです。私は、インタラクティブなシェル コマンドの実行をラップし、シェル コマンドの出力を返す生成可能な生成関数を作成するのが好きです。
アプローチ 1: shelljs
- shelljs
- 私はshelljsである程度成功しましたが、ある時点でそれ以上実行できなくなりました。
- 質問 1: stdio を継承して shelljs 関数を生成できるようになるまで shelljs を取得することは可能ですか?
アプローチ 2: child_process.spawnSync
- child_process.spawnSync
- ついに私は child_process.spawnSync を発見し、少なくともインタラクティブなsh-commandsを問題なく実行できることに満足していました
options: { stdio: 'inherit' }
- しかし、child_process.spawnSync の出力を取り戻す方法がわかりませんでした。
- 質問 2: spawnSync を、child_process の出力を返すジェネレーター関数にラップする方法は?
アプローチ 3: co-child-process
- co-child-processも試しました。
- 実行されているようですが、標準入出力とは対話的ではありません。これに関して問題があります、私は本当に理解していません。
- 質問 3: 誰かが私に説明したり、co-child-process が stdio inherit でどのように機能するかの例を投稿したりできますか?
アプローチ 4: bluebird で child_process.spawn() を約束する
- child_process.spawn() が約束されている場合、私はブルーバードで問題を開きました
だから私の質問です。シェル コマンドの出力を返す生成可能なジェネレーター関数でラップできる対話型シェル コマンドを実行する方法の例を投稿してもらえますか? 私は新しいアプローチに対してオープンです。
フォークして貢献できるgithubで利用可能な npm モジュールを作成しました。
事前にthx。