此代码适用于 Windows 和 Mac OS X:
var exec = require( 'child_process' ).exec
exec( 'git clone git@github.com:user/myrepo.git' )
但是这段代码在 Windows 上运行时从 git 返回“拒绝访问(公钥)”错误,但在 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 上运行良好。
有什么明显的错误吗?