npm install卡在fetchMetadata

时间:2017-08-01 08:48:35

标签: node.js npm

从今天起,我目前无法在任何项目中运行npm install。 我正在运行节点v8.2.1& npm 5.3.0(通过nvm安装)。

键入npm install时,每次都会卡在fetchMetadata上: ⸨ ░░░░░░░░░░░░░░░░⸩ ⠧ fetchMetadata: sill pacote range manifest for longest@^1.0.1 fetched in 197ms

我已经尝试切换回npm 5.0.3,它完美无瑕,但仍然卡住了。

我计算机的详细信息:MacBook Pro正在运行macOS 10.12.6

13 个答案:

答案 0 :(得分:11)

这是我花了半个小时后解决的方法:

  1. npm config set registry http://registry.npmjs.org/ --global
  2. npm cache clear --force
  3. 仅将package-lock.json设置为{}
  4. npm install --verbose

节点:v12.14.1 npm:v6.13.4

当我尝试在angular 6应用上运行ng update并将其更新为angular 9时,会发生此问题。

答案 1 :(得分:7)

首先,运行npm install --verbose以查看更多内容!

在我的案例中发生了什么:

package.json搜索包中,您可以直接从Github获取。在我的情况下,这样的包不再存在。 这样的线看起来像

"NAME_OF_PACKAGE": "git+ssh://git@github.com/SOME_USER/NAME_OF_PACKAGE.git",

删除软件包,修复名称/位置或更改为软件包的npm版本。

进一步说明:我收到了其他几个类似的错误,但所有相同但包名称与longest@^1.0.1不同。我还有p-try@somethingarray-ify@something

对我来说,所有不起作用:rm -rf ~/.npmnpm cache cleanrm package-lock.json 都无效

答案 2 :(得分:3)

这个问题已经很老了,但这些天我陷入了这种情况。

我尝试了所有阅读的建议,以解决与npm安装过程相关的问题(npm缓存清除并验证,卸载并重新安装软件包,卸载并安装所有内容,等等...),看起来像“锁定-在“综合征。就我而言,没有任何成功。

一旦发现我的网络已完全正常运行并且没有任何防火墙,代理和/或奇怪的路由规则,我开始使用npm install -g @angular/cli --verbose(例如cli)安装软件包,然后发现与该网络的所有连接URL registry.npmjs.org在https中完成。就我而言,这就是问题所在。

由于未知原因,在与远程服务器的连接过程中,npm在非常不清楚的情况下失败,没有任何网络错误或警告。只需花费大量时间来检索数据。权限? SSL证书还是一些特定的检查方法?网上有些奇怪的路线?

目前只是一种猜测。我让计算机整夜运行,并且软件包安装正确,但这太疯狂了。不是吗?

在使用命令npm config set registry http://registry.npmjs.org/ --global将连接切换到http之后,在合理的时间内完成安装软件包过程一切正常。

可能我还缺少其他内容,但就我而言,普通的http已解决了该问题。

Ubuntu 18.04.1 LTS /节点v8.12.0 / npm 6.4.1 / nvm 0.33.11

答案 3 :(得分:1)

我遇到了这个问题,并使用rm -rf ~/.npmnpm cache clean修复了此问题。

如果这不起作用,也许安装Homebrew而不是nvm,以消除一些可能性。

答案 4 :(得分:1)

您可以尝试通过将配置设置为:

 npm config set registry

对我有用

答案 5 :(得分:0)

我通过打开 package-lock.json 并重置所有json来解决此问题。删除当前内容并替换为

  

{}

然后重新安装软件包。

答案 6 :(得分:0)

  1. 原因:原因如下: cli不提示:“输入/home/USERS/.ssh/id_rsa的密码:” 而我过去经常在npm @ 5正确获得提示,但是更新到npm @ 6却发生了。
  2. 解决:     #eval`ssh-agent`     #ssh-add //自动输入密码,无需手动操作。

答案 7 :(得分:0)

在我的情况下,删除与永远加载的包相关的包

    "swagger-core-api": "apigee-127/swagger-core-api" //removing this 

但是类似问题的真正原因是项目没有将完整的git数据推送到github(由于.gitconfig中的混乱)。然后github克隆与存储库(或下载ZIP)中的一个不匹配的副本文件。

答案 8 :(得分:0)

可能不是最好的解决方案,但是我的解决方法是将活动分支推到原始位置,将我的仓库重新克隆到另一个文件夹中,然后在新文件夹中安装npm。

答案 9 :(得分:0)

我在使用ouchdb-fauxton进行npm install时卡住了,我通常坐在公司防火墙后面,到处都使用代理,但是切换到直接连接,因为使用npm config proxy不能解决问题我。 但是npm安装使用git ,但我仍然设置为使用代理,这就是我的安装卡住的方式。在git中禁用代理后,它可以工作。

答案 10 :(得分:0)

添加到@CptUnlucky的答案。

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

这将强制进行http提取。如果仅此一项不起作用,请限制可以建立的同时连接的数量。默认的最大连接数为50。

npm set maxsockets 3

对我有用。

答案 11 :(得分:0)

可能是您坐在公司防火墙后面,该公司防火墙到处都使用代理。根据您的情况,您可以为当前项目修改本地.npmrc,而不是影响计算机上所有npm命令的全局项目。

您可以使用“ npm config set”形式的命令等效地设置配置属性,例如npm config set注册表http://registry.npmjs.org/

在终端上执行以下命令:-

npm config set registry <CORPORATE_ARTIFACTORY>

npm config set  https-proxy null

npm config set  proxy null

答案 12 :(得分:0)

我用这个解决了我的问题:

npm cache clear --force

然后将最大 websockets 设置为低于默认 50

npm set maxsockets 3

我认为这意味着对我来说问题是安装速度非常慢,而不是真正卡住的问题,但这可能对某些人有所帮助。