错误:getaddrinfo ENOTFOUND registry.npmjs.org registry.npmjs.org:443

时间:2016-09-20 11:29:31

标签: angularjs node.js windows npm npm-install

我正在建立公司网络。

尝试安装npm.但我一次又一次地收到此错误。

$ npm install
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.1.0
npm ERR! npm  v3.8.6
npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR! syscall getaddrinfo

npm ERR! network getaddrinfo ENOTFOUND registry.npmjs.org    registry.npmjs.org:443
npm ERR! network This is most likely not a problem with npm itself
npm ERR! network and is 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'

npm ERR! Please include the following file with any support request:
npm ERR!     C:\Angular-test\angular-phonecat\npm-debug.log

也试过这个:npm config set registry https://registry.npmjs.org/

仍然遇到同样的错误。

16 个答案:

答案 0 :(得分:21)

要尝试的事情:

  1. 确保您有互联网连接:ping 8.8.8.8
  2. 确保您有DNS解析器工作:ping www.google.com
  3. 确保您可以访问registry.npmjs.org:ping registry.npmjs.org
  4. 确保您可以通过https进行连接。
  5. 尝试使用浏览器:https://registry.npmjs.org/

    确保您尝试连接到:

    • registry.npmjs.org

    而不是:

    • "registry.npmjs.org registry.npmjs.org:443"

    或其他一些奇怪的字符串由少数主机名组成,因为解析器抱怨包含端口号的主机名很奇怪,它不应该关心。好的,我测试过,对于那些找不到的主机,它应该是这样的。

    更新

    从您对此答案的评论中,如果您甚至无法ping 8.8.8.8,那么您似乎直接连接到互联网。

    如果您使用代理访问Web,则还必须配置npm才能使用它。使用:

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

    ,而不是http://example.com:8080使用您公司实际需要的内容 - 询问某人或查看您的浏览器的配置方式。

    要在Chrome中查看代理配置,请参阅this

    更新2

    如果您可以访问浏览器中的https://registry.npmjs.org/,但无法运行ping registry.npmjs.org,则表示您的浏览器必须配置为使用必须限制代理或除浏览器之外的其他程序使用互联网。

    在任何情况下,您都应该向公司中的某个人询问相关信息,因为您可能需要使用特定的代理,或者有人需要解除您npm的限制并允许其访问网络。< / p>

    您的计算机上安装的防火墙或网络中的路由器可能会阻止网络访问。如果不了解贵公司的具体配置,很难说。

答案 1 :(得分:9)

首先,编辑NetworkManager.conf文件:

vim /etc/NetworkManager/NetworkManager.conf

评论此行:

#dns=dnsmasq

最后

sudo service network-manager restart
sudo service docker restart

答案 2 :(得分:6)

使用:https://registry.npmjs.org/ 确保您尝试连接到:

  
    

<强> registry.npmjs.org

  

如果没有错误,请尝试清除缓存

  
    

npm cache clean --force     然后试试     npm install

  

即使您有任何错误

  
    

npm config set registry https://registry.npmjs.org/     然后试试     npm install -g @ angular / cli

  

答案 3 :(得分:3)

我认为如果系统连接到互联网,那么它可能是proxy

的问题

执行此操作以删除proxy

  

npm config delete proxy

答案 4 :(得分:1)

您可以使用此命令

npm config delete proxy

发生这种情况是因为formidable容易受到严重漏洞的影响。因此,您需要通过运行上面的命令来覆盖它。

答案 5 :(得分:1)

我尝试了很多,但这对我来说很好。

from sklearn.model_selection import train_test_split

def my_train_test_split(x,y):
    # split data train 70 % and test 30 %
    x_train, x_test, y_train, y_test = train_test_split(x,y,train_size=0.3,random_state=42)
    #normalization
    x_train_N = (x_train-x_train.mean())/(x_train.max()-x_train.min())
    x_test_N = (x_test-x_test.mean())/(x_test.max()-x_test.min())

my_train_test_split(data,data_y)

如果上面的2条命令不起作用,也可以尝试一下。

npm config rm proxy
npm config rm https-proxy

答案 6 :(得分:0)

如果Ubuntu尝试打开 所有设置&gt;网络&gt;网络代理 将方法设置为自动并保存。

答案 7 :(得分:0)

我有同样的问题。原因是公司代理问题。 解决方案是将代理设置设置为@rsp所说。

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

但是后来我遇到了同样的问题。这次的原因是我的密码包含特殊字符。

  

在此命令中,您不能提供带有特殊字符的密码

。因此解决方案是在密码中提供百分比编码的特殊字符。

  

例如#必须提供%23

https://www.w3schools.com/tags/ref_urlencode.asp

答案 8 :(得分:0)

我花了5个多小时来尝试消除Windows 8.1下的此消息。因此,我想分享我的案例并节省别人的时间。我不是在代理后面……但是设置代理有助于解决该问题。所以我深入研究发现问题是由Comodo Firewall引起的...由于我安装软件包的速度太快而阻塞了cmd(关闭甚至关闭Firewall都无济于事,这导致我很久才发现问题...似乎就像防火墙在后台运行其他进程一样)。安装的任何其他防火墙/防病毒程序可能存在相同的问题,因此请确保cmd未被它们阻止。祝你好运!

答案 9 :(得分:0)

我在PC上安装了全新的Windows 10,并在命令行上进行了尝试,它的工作原理像一个超级按钮:

npm config rm https-proxy

答案 10 :(得分:0)

在我看来,这只是一个间歇性问题,几次尝试都没有起作用,然后查看了https://registry.npmjs.org(网页运行正常),再次尝试,再次尝试然后它起作用了。

答案 11 :(得分:0)

对于Windows子系统Linux:

重新启动WSL终端(bash / shell)解决了该问题(但是,重新启动和花费了几分钟的时间)。

使用nslookup www.google.com 或npm.org检查连接。

答案 12 :(得分:0)

首先,您需要使用此命令

  

npm配置集注册表https://registry.your-registry.npme.io/

这是为了将公司企业注册表设置为默认注册表。

您也可以尝试其他给定的解决方案。

答案 13 :(得分:0)

如果您正在使用代理,则必须为npm设置代理才能将其连接到仓库。

npm config set registry http://registry.npmjs.org/
npm config set proxy http://myusername:mypassword@proxy.somecompany.com:8080
npm config set https-proxy http://myusername:mypassword@proxy.somecompany.com:8080
npm config set strict-ssl false
set HTTPS_PROXY=http://myusername:mypassword@proxy.somecompany.com:8080
set HTTP_PROXY=http://myusername:mypassword@proxy.somecompany.com:8080

注意,如果您的密码包含特殊字符,例如 @ EX:密码:mypwd1 @ xyz 然后使用%40代替@ Ex: npm config set proxy http://myusername:mypwd1%40xyz@proxy.somecompany.com:8080

答案 14 :(得分:0)

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

这对我来说是唯一的解决方案。

答案 15 :(得分:0)

如果您使用组织提供的系统并且连接到其 vpn,则大多数情况下会出现此问题。 在这种情况下,请断开与 vpn 的连接,然后尝试执行此命令。