github ssh公共密钥没有find与node.js child_process.spawn()在Windows上,但在child_process.exec()可见
此代码适用于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
命令可以直接在命令提示符下input时在Windows上正常工作。
任何明显的错误?
不是一个节点的问题,而是一个git
问题。 在Windows上从1.7.11升级到1.8.3和产卵工作。
我想环境variables会丢失在一个经典的node.js spaw()
函数中,尤其是HOME
(在Windows中并不是默认定义的,并且是sshfind它的键所必需的)
也许像双赢的产卵会更好的工作:
为
node.js
但无论您使用的是哪种操作系统,都可以工作。 如果你想使用一个JavaScript文件产卵,使用这个。它通过在Windows上显式调用节点来工作。
它也通过试图用正则expression式parsing命令来缓冲对环境variables设置的支持 。
由于所有修改都包含在if (os === 'Windows_NT')
,因此可以安全地在非Windows系统上使用,不会破坏任何内容。
- 如何使我的存储库成为package.json的一个依赖项并让它提示我input信息?
- 无法安装@types软件包:主机密钥validation失败
- 第一次使用node.js – “ReferenceError:节点未定义”
- 正确的工作stream程部署节点应用程序
- 如果事情已经改变,只能build立项目
- Heroku不能GET /
- 新项目的Git Init
- AWS Elastic Beanstalk:我是否必须使用完整的“/ node_modules”和“/ bower_components”来部署我的应用程序,并编译sass和其他依赖项?
- (git)将更改推送到开发服务器并使其自动重新启动Node应用程序的最佳方法?