1

git は Windows にインストールされ、任意のディレクトリから動作します (システム パスにあります)。

var child_process = require('child_process');
child_process.exec('git --version', function(err, stdout, stderr) {
  // stdout is correct - git version 1.7.11.msysgit.1
  // but err is not null
  // err is [Error: Command failed: ] killed: false, code: 1, signal: null }      
}

何が原因でしょうか?

4

2 に答える 2

3

msysgitでWindows 7を使用すると、この問題が発生しました。2つのことが問題を解決しているようです。

まず、システム変数にcmd ディレクトリではなくPath、Git bin ディレクトリへのパスが含まれていることを確認します。

C:\Program Files (x86)\Git\bin

次に、msysgit の最新バージョンがあることを確認します。バージョン で問題が解決したことを確認しました1.8.4-preview:

https://code.google.com/p/msysgit/downloads/list

シェルを再起動して、もう一度やり直してください。

于 2013-11-06T18:51:02.323 に答える
1

回避策として、ドキュメントで説明されているように{env:{PATH:"C:\path to\node"}}、オプション引数として渡すことができます。process.exec(cmd, opts, callback)Windows パスが引き継がれないことに驚いていますが、その理由は説明されていません。

于 2013-08-24T21:50:15.997 に答える