📌  相关文章
📜  npm 错误!尝试获取 https 时响应超时:registry.npmjs.org semver(超过 30000 毫秒) (1)

📅  最后修改于: 2023-12-03 15:03:18.083000             🧑  作者: Mango

npm 错误!尝试获取 https 时响应超时:registry.npmjs.org semver(超过 30000 毫秒)

很多程序员在使用npm安装依赖时,都会遇到类似上述错误提示,这往往会导致应用程序无法正常运行。该错误提示中包含比较重要的两个信息:registry.npmjs.orgsemver,这两个信息对于解决该问题非常重要。

registry.npmjs.org

npm包管理器默认使用的registry地址为https://registry.npmjs.org/,这个地址包含了npm所有的模块,开发者在使用npm安装依赖时,npm会首先到该地址中查找所需要的模块,如果该地址无法正常使用,就会出现类似错误提示信息的情况。

semver

semver是一个语义化版本规范,即我们平常看到的版本号,如1.0.01.1.0等等。在使用npm安装时,会根据semver规范匹配安装合适的版本。

原因

那么出现上述错误提示,是因为npm无法连接到registry地址,原因可能有以下几点:

  • 用户网络问题,如网络连接不稳定、DNS解析出错等;
  • registry.npmjs.org服务器问题,如服务器宕机、限流等;
  • npm本身问题,如npm版本太老、缓存问题、机器性能问题等。
解决

在解决问题之前,我们需要排查问题原因。可以尝试使用ping registry.npmjs.org命令检查是否可以访问该地址,如能够ping通,说明网络连接正常;否则,可以尝试使用nslookup registry.npmjs.org命令检查DNS解析情况。

方案1: 更换registry地址

如果可以ping通该地址,那么可以考虑更换registry地址。

npm官方提供了很多 mirror registry,我们可以选择其他地址进行尝试,如官方mirror地址:https://registry.npm.taobao.org/。

可以使用如下命令更改registry地址:

npm config set registry https://registry.npm.taobao.org
方案2: 清空缓存

有时候,由于npm缓存的问题,也可能导致出现响应超时的错误提示。

可以通过以下命令清空npm缓存:

npm cache clean --force

然后重新安装依赖,看看是否能够正常安装。

方案3: 升级npm版本

如果npm版本太老,也可能会导致响应超时的问题。

可以使用如下命令升级npm至最新版本:

npm install -g npm@latest
结论

出现npm 错误!尝试获取 https 时响应超时:registry.npmjs.org semver(超过 30000 毫秒)的错误提示,可能是由于网络连接、registry.npmjs.org服务器或npm本身问题所导致的。

我们可以尝试更换registry地址、清空npm缓存或升级npm版本等方案进行解决。