npm ERR! network getaddrinfo ENOTFOUND

76

在使用NPM安装任何软件包时,我遇到了npm ERR!network getaddrinfo ENOTFOUND错误。我知道有许多关于同一问题的帖子,但我找不到任何可以帮助我的帖子。

我已经设置了代理,我认为问题与代理设置不正确或未使用正确的URL有关。

npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080

在设置代理时,有没有办法检查我正在使用的URL是否正确?我需要采取哪些步骤来纠正这个问题吗?

输入图像描述


我知道这是一个非常老的帖子,但它也被高度浏览。你能否将你的错误信息图像转换为实际文本? - starball
33个回答

1
我在我的Arch Linux发行版上使用npm 14.3.0(带有npm 6.14.5)时遇到了这个问题。我只需删除~/.npm目录并再次尝试,这次它就可以正常工作了。

请考虑将此作为评论而不是答案发布。 - Rahul Bhobe

1
如果您的代理配置没有问题,有时问题可能是一个过时的package-lock.json文件,因此它会重定向到不存在的artifactory、npm注册表。
尝试删除package-lock.json文件并再次尝试npm i。

1

好的,这个问题仅适用于那些未连接到组织内部网络的用户。

出现这个问题可能是由于以下原因之一:

  1. 你在系统的npm设置中搞砸了一些东西,你正在使用一个

  2. 像nvm这样的节点版本管理器(就像我遇到的情况)。

在这两种情况下,这个问题都会出现在你的常规网络上。

解决方案:

npm config rm proxy

npm config rm https-proxy

npm config set registry https://registry.npmjs.org/

按照以下顺序运行这些命令,它们的作用是将默认注册表从HTTP设置为HTTPS(这在我的情况下是问题所在)。这样,您就可以在不禁用SSH的情况下访问注册表。

0

我错误地输入了地址为

http://addressOfProxy.8080

而不是

http://addressOfProxy:8080  

(注意在端口号8080之前的冒号。)


0

步骤1:检查您是否设置了代理

npm config get proxy 

第二步:如果它返回了null,而且你也不想要任何代理,那么请前往~/Users/.npmrc。 打开文件并确保它写有以下内容:
registry=http://registry.npmjs.org/

禁用 cmd 会话的 strict-ssl

npm config set strict-ssl=false

现在尝试进行npm安装

附言:如果get proxy没有返回null,请检查代理是否正确,否则请设置它为

npm config set proxy http://proxy.example.com:6500 

0

0

由于某种原因,我的错误一直指向配置文件中的“代理”属性。这是误导性的。在故障排除期间,我尝试了不同的代理和https-proxy属性值,但只会收到错误提示,要确保代理配置正确,并指向旧值。

使用NPM CONFIG LS -L命令列出配置文件中的所有属性和值。然后我能够看到问题的值与https-proxy匹配,因此使用https-proxy。所以我改变了代理(我们公司使用不同的代理),然后它就起作用了。我认为我应该加上这个,因为对于这些微妙混淆的错误,每个人的观点都有帮助。


0

只需使用以下命令取消代理主机:

unset HOST

这对我很有效。


0
我使用带有Ubuntu发行版的WSL。遇到了相同问题,但以上解决方案都无效。
运行以下命令,然后一切开始正常工作:
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null

0

好的,大家都在给出他们的答案,所以我也想写一下。

我遇到了和其他人一样的代理问题。我尝试了许多解决方案,但都没有起作用。

C:\Users\your_username 目录下搜索 .npmrc 文件名,然后添加以下行:

http://proxy.company.com:8888

enter image description here

我只做了这个,我的问题解决了。


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