我将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 - 第一次安装正常工作,并且在开始工作后不再使用。
节点版本8.2.1
npm版本5.3.0
感谢您的帮助。
答案 0 :(得分:12)
如果它对任何人都有帮助:对我有用的唯一解决方案是ping注册表以找到IP。而我获得知识产权的事实意味着我没有被阻止
ping registry.npmjs.org
64 bytes from registry.npmjs.org (151.101.60.162): icmp_seq=1 ttl=52 time=87.3 ms
在我的hosts文件(Im in centos / etc / hosts /)中将IP设置为此主机:
151.101.60.162 registry.npmjs.org
我几乎可以肯定这是NPM中的一些小故障
答案 1 :(得分:11)
您可能需要检查您的NPM代理设置,并可能将其删除。
npm config get proxy
npm config rm proxy
npm config rm https-proxy
有人可能期望全新安装的NodeJS + NPM不会配置代理。奇怪的是,我的确定了一个代理定义,指向一个IP和端口3128.删除代理就行了。
答案 2 :(得分:0)
我尝试第一种解决方案,ping Registry.npmjs.org并将其添加到主机文件,不起作用,然后尝试第二种方法:
npm config get proxy
npm config rm proxy
npm config rm https-proxy
这对我有用。 使用“ npm config get proxy”,我的端口号为8080,现在为空。
我不知道这个价值来自何处。
答案 3 :(得分:0)
按照以下命令提示符中的说明设置代理。
npm config set proxy http://1X.XX.X.40:80
它解决了这个问题。