1

このコードは、Windows および Mac OS X で機能します。

var exec = require( 'child_process' ).exec
exec( 'git clone git@github.com:user/myrepo.git' )

ただし、このコードは、Windows で実行すると git から "Access denied(publickey)" エラーを返しますが、Mac OS X では返しません。

var spawn = require( 'child_process' ).spawn
 ,  child = spawn( 'git', [ 'clone', 'git@github.com:user/myrepo.git' ], { env: process.env } )

child.on.stderr( 'data', function( data ) { 
  console.log( data.toString() )
})

spawn...との接続が失われている~/.sshと思いますが、送信しても問題ないと思いましprocess.envた。ちなみに、git cloneコマンド プロンプトに直接入力すると、コマンドは Windows で正常に動作します。

明らかに間違っていることはありますか?

4

2 に答える 2

1

ノードの問題ではなく、git問題です。Windows で git を 1.7.11 から 1.8.3 にアップグレードすると、スポーンが機能しました。

于 2013-07-19T03:05:27.870 に答える