运行 npm install 时无法验证第一个证书

Rub*_*ans 16 ubuntu ssl node.js angularjs

我正在查看 Angular2 教程:https : //github.com/angular/quickstart/blob/master/README.md

但是,当我按照指南运行 npm install 时,我最初遇到了与UNABLE_TO_VERIFY_LEAF_SIGNATURE. 谷歌搜索似乎与 SSL 证书有关,因此我尝试使用以下命令解决此问题:

npm config set strict-ssl false
Run Code Online (Sandbox Code Playgroud)

然后我重试 npm install

这有点进一步,但随后出现了与“无法验证第一个证书”相关的新错误:

typings ERR! message Unable to connect to "https://api.typings.org/entries/dt/core-js/tags/0.0.0%2B20160725163759"
typings ERR! caused by unable to verify the first certificate

typings ERR! cwd c:\Code\Angular2\Quickstart
typings ERR! system Windows_NT 6.1.7601
typings ERR! command "C:\\Program Files\\nodejs\\node.exe" "c:\\Code\\Angular2\\Quickstart\\node_modules\\typings\\dist\\bin.js" "install"
typings ERR! node -v v6.7.0
typings ERR! typings -v 1.4.0
typings ERR! code EUNAVAILABLE

typings ERR! If you need help, you may report this error at:
typings ERR!   <https://github.com/typings/typings/issues>

npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.14
npm WARN angular-quickstart@1.0.0 No license field.
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! node v6.7.0
npm ERR! npm  v3.10.3
npm ERR! code ELIFECYCLE
npm ERR! angular-quickstart@1.0.0 postinstall: `typings install`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the angular-quickstart@1.0.0 postinstall script 'typings install'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the angular-quickstart package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     typings install
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs angular-quickstart
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls angular-quickstart
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     c:\Code\Angular2\Quickstart\npm-debug.log
Run Code Online (Sandbox Code Playgroud)

我是 NodeJS 和 Angular2 开发的新手。有任何想法吗 ?如果我遗漏了任何细节,请告诉我。

Thi*_*cao 14

您可以尝试在配置中将注册表更改为 http 版本

npm config set registry http://registry.npmjs.org/ --global
Run Code Online (Sandbox Code Playgroud)


vol*_*kit 5

在我的情况下,将 .npmrc 中的 ca 文件添加到公司代理证书是解决方案:

npm config set cafile "path to proxy cert file"
Run Code Online (Sandbox Code Playgroud)

或在 .npmrc 中使用编辑器插入:

cafile=<path to proxy cert file>
Run Code Online (Sandbox Code Playgroud)

.npmrc 文件位于主目录中。


Rub*_*ans 2

我能够使用此处的说明解决该问题: https://github.com/typings/typings/issues/564

这个问题最终与我的机器位于某个公司代理后面有关,这似乎与 npm 无法针对代理对 https 进行身份验证有关。由于我没有有关所使用代理的任何进一步信息,因此无法按照上面的 @leetibbett 建议进行配置。所以我在根目录中创建了 .typingsrc 文件以使用http版本:

{
     "rejectUnauthorized": false,
     "registryURL": "http://api.typings.org/"
}
Run Code Online (Sandbox Code Playgroud)