首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >npm安装失败(安装MERN堆栈)

npm安装失败(安装MERN堆栈)
EN

Stack Overflow用户
提问于 2018-09-01 09:53:26
回答 6查看 1.7K关注 0票数 1

但是,当我运行以下命令时,我试图在我的Mac上安装MERN堆栈:

代码语言:javascript
复制
sudo npm install -g mern-cli

我收到以下错误消息:

代码语言:javascript
复制
request to https://registry.npmjs.org/mern-cli failed, reason: Hostname/IP doesn't match certificate's altnames: "Host: registry.npmjs.org. is not in the cert's altnames: DNS:a.sni.fastly.net, DNS:a.sni.global-ssl.fastly.net"

我尝试了几种方法,比如运行以下命令(它解决了其他人的问题):

代码语言:javascript
复制
sudo npm config set registry https://registry.npmjs.org/

然而,这并不能解决问题。另外,重新安装Node也没有完全解决问题。如何解决这个问题?

编辑:完全调试日志

代码语言:javascript
复制
0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node',
1 verbose cli   '/usr/local/bin/npm',
1 verbose cli   'install',
1 verbose cli   '-g',
1 verbose cli   'mern-cli' ]
2 info using npm@5.6.0
3 info using node@v8.11.4
4 verbose npm-session f5dd10c6d19e4605
5 silly install loadCurrentTree
6 silly install readGlobalPackageData
7 silly fetchPackageMetaData error for mern-cli@latest request to https://registry.npmjs.org/mern-cli failed, reason: Hostname/IP doesn't match certificate's altnames: "Host: registry.npmjs.org. is not in the cert's altnames: DNS:a.sni.fastly.net, DNS:a.sni.global-ssl.fastly.net"
8 verbose type system
9 verbose stack FetchError: request to https://registry.npmjs.org/mern-cli failed, reason: Hostname/IP doesn't match certificate's altnames: "Host: registry.npmjs.org. is not in the cert's altnames: DNS:a.sni.fastly.net, DNS:a.sni.global-ssl.fastly.net"
9 verbose stack     at ClientRequest.req.on.err (/usr/local/lib/node_modules/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/index.js:68:14)
9 verbose stack     at emitOne (events.js:116:13)
9 verbose stack     at ClientRequest.emit (events.js:211:7)
9 verbose stack     at TLSSocket.socketErrorListener (_http_client.js:387:9)
9 verbose stack     at emitOne (events.js:116:13)
9 verbose stack     at TLSSocket.emit (events.js:211:7)
9 verbose stack     at emitErrorNT (internal/streams/destroy.js:64:8)
9 verbose stack     at _combinedTickCallback (internal/process/next_tick.js:138:11)
9 verbose stack     at process._tickCallback (internal/process/next_tick.js:180:9)
10 verbose cwd /Users/Bjorn/Desktop/StoryOfAms
11 verbose Darwin 17.7.0
12 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "mern-cli"
13 verbose node v8.11.4
14 verbose npm  v5.6.0
15 error request to https://registry.npmjs.org/mern-cli failed, reason: Hostname/IP doesn't match certificate's altnames: "Host: registry.npmjs.org. is not in the cert's altnames: DNS:a.sni.fastly.net, DNS:a.sni.global-ssl.fastly.net"
16 verbose exit [ 1, true ]
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2018-09-01 12:38:41

正如许多其他答案所指出的,这似乎是一个全球性的问题,我也在经历同样的事情。我确实按照https://status.npmjs.org/incidents/v22ffls5cd6h提供的说明(如@muradm和其他人的建议)解决了这个问题。

这里的说明是通过使用dig命令或使用google工具来检查您自己对www.npmjs.com的IP应答是什么。

其结果是在我的主机文件中包含以下行:

代码语言:javascript
复制
104.16.109.30   registry.npmjs.org

这为我解决了这个问题。请记住,这是一个临时修复,应该删除后,周末!祝好运!

-编辑--

此外,这是假设您使用registry.npmjs.org作为NPM注册表端点(这是默认设置)。要检查这一点,您可以运行:

代码语言:javascript
复制
npm config get registry

例如,如果返回"https://registry.npmjs.com/“,可以尝试添加到主机:

代码语言:javascript
复制
104.16.109.30   registry.npmjs.com

我刚刚测试过了,而且工作得很好!

如果您不知如何编辑主机文件,可以在这里检查:https://www.howtogeek.com/howto/27350/beginner-geek-how-to-edit-your-hosts-file/

票数 3
EN

Stack Overflow用户

发布于 2018-09-01 12:33:07

除了@jcemoller的回答外,对我来说:

  • 按照http://status.npmjs.org的DNS夹具说明执行
  • npm config set strict-ssl false

然后起作用了。

上述配置应在问题完全解决后一天左右恢复。

票数 1
EN

Stack Overflow用户

发布于 2018-09-01 10:37:11

我认为这是你的答案:

Node.js主机名/IP与证书的altname https://stackoverflow.com/a/16311147/6620340不匹配

您可以添加rejectUnauthorized:false以避免进行安全检查。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52126980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档