npm install卡在fetchMetadata上

dsc*_*chu 15 node.js npm

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

键入npm installfetchMetadata每次都会卡住: ? ????????????????? ? fetchMetadata: sill pacote range manifest for longest@^1.0.1 fetched in 197ms

我已经尝试切换回npm 5.0.3哪个功能完美无缺,但仍然卡住了.

我的电脑详细信息: MacBook Pro正在运行macOS 10.12.6

Ste*_*zel 20

在节点 v10.16.3 的旧项目中(当 v16/v18 是当前版本时),挂起的原因是一些底层请求

git ls-remote -h -t git://github.com/glayzzle/php-parser.git
Run Code Online (Sandbox Code Playgroud)

自 2022 年初以来,该方法失败了,因为 Github 弃用了未经身份验证的 git:// 协议 ( https://github.blog/2021-09-01-improving-git-protocol-security-github/ )。这个请求重试了几次,只出现在我偶然发现的一个 npm-log 中。

我通过添加解决了这个问题

[url "https://"]
    insteadOf = git://
Run Code Online (Sandbox Code Playgroud)

到 ~/.gitconfig,由/sf/answers/751074411/提供。

  • 这节省了我的时间(或我的一个月)... `git config --global url."https://github".insteadOf git://github` (2认同)

Sam*_*oon 19

这就是我花了半个小时解决这个问题的方法:

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

节点:v12.14.1 npm:v6.13.4

当我尝试ng update在 angular 6 应用程序上运行以将其更新为 angular 9时出现此问题。


And*_*dru 7

作为第一件事,跑去npm install --verbose看更多!

在我的情况下发生了什么:

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

"NAME_OF_PACKAGE": "git+ssh://git@github.com/SOME_USER/NAME_OF_PACKAGE.git",
Run Code Online (Sandbox Code Playgroud)

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


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


对我来说都没有工作:rm -rf ~/.npm,npm cache cleanrm package-lock.json 全部没有工作!


小智 7

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

我尝试了我读到的所有建议来解决与 npm 安装过程相关的问题(清除 npm 缓存并验证、卸载并重新安装包、卸载并安装所有内容等等...),看起来像是“锁定”综合症. 在我的案例中没有任何成功。

一旦我发现我的网络在没有任何防火墙、代理和/或奇怪的路由规则的情况下完全启动并运行,我开始安装包(例如 cli)npm install -g @angular/cli --verbose,我发现到 URL 的所有连接registry.npmjs.org都是在 https 中完成的。这就是我的问题。

由于未知原因,在与远程服务器连接期间,npm 在不太清楚的情况下失败,没有任何网络错误或警告。简单地说,检索数据需要大量时间。权限?SSL证书或对其进行一些特定检查?网上的一些奇怪的路线?

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

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

可能还有更多我遗漏的东西,但在我的情况下,普通的 http 已经解决了这个问题。

Ubuntu 18.04.1 LTS / node v8.12.0 / npm 6.4.1 / nvm 0.33.11


小智 7

添加到@CptUnlucky 的答案。

npm config set registry "http://registry.npmjs.org"
Run Code Online (Sandbox Code Playgroud)

这会强制 http 获取。如果单独这样做不起作用,请限制可以建立的同时连接的数量。默认最大连接数为 50。

npm set maxsockets 3
Run Code Online (Sandbox Code Playgroud)

那对我有用。


Cri*_*lzu 5

在所有答案中,这是对我有用的一个

git config --global url."https://github".insteadOf git://github
Run Code Online (Sandbox Code Playgroud)


Set*_*day 3

我经历过这个并用rm -rf ~/.npm或修复了它npm cache clean

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