私はリアルタイムフィードバック(stdin/stdout/stderr)でアプリケーションからgcloud app deploy
を起動する必要があるElectronアプリケーション(Node.js) 。WindowsのNode.jsスクリプトから `gcloud app deploy`を起動できない
私は200キロバイトに制限されてchild_processバッファを搭載したMac OS X上でいくつかの問題を持っていたので、私は急速にexecaにchild_process
から切り替え(とgcloud app deploy
は、文字列> 200キロバイトクラッシュコマンドのいくつかの大きな塊を送ります)。
今、execa
で、すべてがOSXでは正常に動作するようですが、Windowsでは正常に動作しているようです。
に同じ結果を持っていないながら
let bin = `gcloud${/^win/.test(process.platform) ? '.cmd' : ''}`
//which: https://github.com/npm/node-which
which(bin, (err, fullpath) => {
let proc = execa(fullpath, ['app', 'deploy'], {
cwd: appPath
})
proc.stdout.on('data', data => {
parseDeploy(data.toString())
})
proc.stderr.on('data', data => {
parseDeploy(data.toString())
})
proc.then(() => {
...
}).catch(e => {
...
})
})
このコードは、Mac OS X上で完璧に動作します:
のコードは次のようになります
- execa()
- execa.shell()
- オプションシェル:真
- デタッチで動作します:trueただし、アプリケーションとリアルタイムでstdout/stderrを読み込むことはできません。ノードとやりとりすることなく新しいcmd.exeを要求します。 jsアプリケーション
- 多くのchild_processバリアント。私も
execa
リポジトリ上の問題を開設 https://gist.github.com/thyb/9b53b65c25cd964bbe962d8a9754e31f
は、私は基本的な子プロセスのスクリプトを使用してWindows上で行っているいくつかのテストのために取得した応答を表示するGISTを行っています
誰かがすでにこの問題を抱えていますか?私はこの問題を解決しないreddit threadを除いて、何かを探し回って有望なものは見つけられませんでした。