尝试为sql server的nodejs构建microsoft驱动程序时出现以下错误
gyp info使用node-gyp@3.2.1 gyp info使用node@5.3.0以ok gyp信息结束时是否有效win32 | x64 gyp http GET https://nodejs.org/download/release/v5.3.0/node-v5.3.0-headers.tar.gz gyp WARN安装出错,回滚安装gyp ERR!配置错误gyp ERR!堆栈错误:证书链gyp ERR中的自签名证书!堆栈错误(本机)gyp ERR!堆栈在TLSSocket . (_tls_wrap.js:1057:38)gyp ERR!堆栈在emitNone(events.js:67:13)gyp ERR!堆栈在TLSSocket.emit(events.js:166:7)gyp ERR!堆栈在TLSSocket._finienter代码hereshInit gyp ERR!不好 ”
我尝试了下面的解决方法,但它工作
1) upgrade your version of npm
npm install npm -g --ca=null
- or -
2) tell your current version of npm to use known registrars
npm config set ca=""
任何人都可以指导我如何解决此证书问题
2 回答
不幸的是,node-gyp不使用npm的证书设置 .
如果您正在调用node-gyp,则可以更新到最新的node-gyp,然后使用新的
--cafile
参数来提供有效的ca证书 .如果您使用npm来安装使用node-gyp构建自己的软件包,那么您唯一的办法就是预先设置
NODE_TLS_REJECT_UNAUTHORIZED=0
环境变量,以使其忽略CA证书问题 .请参阅github上的讨论:https://github.com/nodejs/node-gyp/issues/695
对我来说gyp rebuild找不到binding.gyp而它正试图下载它 . 试试看:
sudo npm install -g --unsafe-perm binding