npm卡在fetchMetadata上 - >网络

时间:2016-06-16 13:07:55

标签: node.js npm npm-install

无论是从package.json安装的npm还是单个软件包,我的npm都会遇到很多困难。

现在,我甚至无法sudo npm install node-inspector -g

我在node 6.2.1

上使用npm 3.9.5ubuntu 16.04

npm cache clear没有帮助。 安装需要数小时或失败。

11 个答案:

答案 0 :(得分:51)

如果您使用任何代理,请检查代理是否存在任何问题。 您也可以尝试手动设置npm的端点:

npm config set registry="http://registry.npmjs.org"

答案 1 :(得分:21)

尝试yarn安装程序而不是npm:

sudo npm install -g yarn
yarn install

我发现它对这些问题更具弹性。

答案 2 :(得分:11)

我遇到了同样的问题,fetchMetaData上挂了几个不同的安装,包括上面提到的yarn的安装。我正在使用Mac并通过更新npm解决此问题,如下所示:

npm install npm@latest -g

因此,如果您在Mac上遇到此问题,请尝试更新,看看它是否能解决您的问题。

答案 3 :(得分:6)

对我来说,它是Windows中的双重临时目录。

打开命令提示符并键入:

echo %TEMP%

您应该收到单个目录的路径。如果您收到多个目录(我收到C:\ Users \\ AppData \ Local \ Temp; C:\ xampp \ php),这可能是问题所在。您可以使用以下命令修复它:

SET TEMP="<correct path to temporary directory>"

其中<correct path to temporary directory>可能是第一条路径(在分号之前,在我的情况下,这意味着C:\Users\<user>\AppData\Local\Temp)。

答案 4 :(得分:5)

您配置了代理吗?看看是否返回什么:

> npm config get https-proxy
> npm config get proxy

如果在此处配置了值,则它们可能与正确的值不匹配。如果您不应该使用代理,则可以删除它们:

> npm config delete https-proxy
> npm config delete proxy

文档:https://docs.npmjs.com/cli/config

答案 5 :(得分:5)

您需要清除https代理设置:

npm config rm proxy
npm config rm https-proxy

答案 6 :(得分:2)

我遇到了同样的问题。首先尝试使用npm install标志运行-verbose。这可以帮助您识别问题。

那个命令告诉我隧道插座有问题:

  

无法建立隧道套接字,因为=写EPROTO 101057795:错误:140770FC:SSL例程:SSL 23_GET_SERVER_HELLO:未知协议:openssl \ ssl \ s23_clnt.c:794:

之后我搜索了错误并找到了thread on github关于该问题的信息。问题出在代理中:之前我设置了HTTP_PROXY环境变量,然后删除了环境变量npm install,没有任何错误。

答案 7 :(得分:1)

有很多不同的事情可能导致这个问题。

我尝试了很多东西,包括这里发布的大部分答案,但没有运气。

出于某种奇怪的原因,这是我的ISP的问题。当我尝试使用其他ISP时,它运行良好。

答案 8 :(得分:1)

对于大多数人来说,该问题可能与代理设置有关,可以通过上述解决方案解决。

对我来说,问题是另外一回事。我有私有存储库依赖关系,这些依赖关系托管在Bitbucket上,并通过“ git + ssh://git@bitbucket.org/”解决,该实习生使用SSH检索存储库。

默认情况下,如果DNS检索AAAA记录并且主机具有一个AAAA记录,则SSH首选IPv6。由于Bitbucket确实具有AAAA记录,因此SSH是通过IPv6完成的。但是我的ISP不支持IPv6(您可以通过http://ipv6-test.com/中的测试来检查ISP是否支持IPv6)。

要解决此问题,您可以强制SSH客户端使用IPv4而不是IPv6。

AddressFamily inet中设置/etc/ssh/ssh_config,然后重新启动SSH客户端。

在Ubuntu上重新启动SSH客户端,请使用sudo service ssh restart

答案 9 :(得分:1)

我有一个与@giridhar类似的问题,但它与代理无关,只是我的ssh密钥未正确设置。 尝试从ssh://网址执行git ls-remote时。我得到提示输入我的ssh密钥的密码。

我不得不在命令行上运行以下命令,以免被要求输入密码:

$ eval `ssh-agent -s`
$ ssh-add ~/.ssh/id_rsa

输入密码后,就不必再输入了。

如果您需要设置SSH密钥,我强烈建议您从Atlassian阅读此Wiki:https://confluence.atlassian.com/bitbucket/set-up-an-ssh-key-728138079.html

答案 10 :(得分:0)

有同样的问题。通过切换到项目所需的正确版本的节点来修复它。

我的项目需要节点>=v4.3 and <=v5.

1)检查nvm ls

使用的节点版本

2)使用nvm use [version]或者安装特定版本。如果你没有。