升级到Node.js 8后,Npm抛出错误

7

我将我的 nodejs 升级到最新版本后,每当尝试运行 npm install 安装软件包时,总是会出现错误:

npm WARN registry Using stale data from http://registry.npmjs.org/ because the host is inaccessible -- are you offline?
npm WARN registry Using stale package data from http://registry.npmjs.org/ due to a request error during revalidation.
npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR! network request to http://registry.npmjs.org/escope failed,      reason: getaddrinfo ENOTFOUND registry.npmjs.org registry.npmjs.org:80
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network 
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help config'

我没有网络连接问题,我禁用了到https:https://registry.npmjs.org的路由,并将其替换为http。第一次安装成功后,立即停止工作。
node版本8.2.1 npm版本5.3.0 感谢任何帮助。
4个回答

16
如果对任何人有帮助:对我有效的唯一解决方案是ping注册表以查找IP。而且我获得了IP意味着我没有被阻止。 ping registry.npmjs.org
64字节来自registry.npmjs.org(151.101.60.162):icmp_seq = 1 ttl = 52 time = 87.3 ms
将IP设置为我的hosts文件中的此主机(我在centos / etc / hosts /中):
151.101.60.162 registry.npmjs.org
我几乎可以确定这是NPM中的某些小错误。

谢谢你的回答。它对我有用!这里只是一个问题。我需要担心以后删除主机条目吗? - Ashok M A
在2019年,这个错误仍然存在,而且解决方案仍然有效。 - Orelsanpls

15

您可能想要检查您的NPM代理设置,或者将其删除。

npm config get proxy
npm config rm proxy
npm config rm https-proxy

人们可能期望NodeJS+NPM的新安装不会配置代理。令人惊奇的是,我的确带有定义的代理,指向IP和端口3128。移除代理解决了问题。


1
不是这样的,当我尝试获取代理时,返回了 null。谢谢。 - Adidi
尝试一下,运行命令 npm config set registry http://registry.npmjs.org/。或者,检查您的ISP或公司的防火墙/代理。 - Jijo Paulose

0

在命令提示符中按如下方式设置代理。

npm config set proxy http://1X.XX.X.40:80

问题已经解决。


-2

我尝试了第一种解决方案,即ping registry.npmjs.org并将其添加到主机文件中,但没有起作用,然后我尝试了第二种方式:

npm config get proxy
npm config rm proxy
npm config rm https-proxy

这对我有用。 使用“npm config get proxy”,我得到了一个带有8080端口的值,现在它为空。

我不知道那个值来自哪里。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接