众所周知,npm 官方镜像(registry.npmjs.org)在国内访问很慢,很多同学都会选择切换到国内的一些 npm 镜像,如淘宝镜像、腾讯云镜像。
1 月 22 日,淘宝原镜像域名(registry.npm.taobao.org)的 HTTPS 证书正式到期:
这就导致旧的 npm 淘宝镜像在使用时出错了:
其实,早在 2021 年,淘宝就发文称,npm 淘宝镜像已经从 registry.npm.taobao.org 切换到了 registry.npmmirror.com。旧域名也将于 2022 年 5 月 31 日停止服务(不过,直到今天 HTTPS 证书到期才真正不能用了)。
所以,遇到上述问题,或者还在使用旧的 npm 淘宝镜像,直接将 npm 源切换到新的源即可:
// 1. 清空缓存
npm cache clean --force
// 2. 切换新源
npm config set registry https://registry.npmmirror.com
我们可以使用 nrm 来管理 npm 源,特别是当需要在不同的网络环境之间切换时,它可以提供更好的包管理体验。
nrm(npm registry manager)是一个用于管理和切换 npm 源的命令行工具。它允许您在不同的 npm 源之间进行切换,以加快包的下载速度,或者解决特定源无法访问的问题。nrm 提供了一组命令,可以列出可用的 npm 源、添加新源、测试源的响应速度,并切换当前使用的源。
首先,通过以下命令来安装 nrm:
npm install -g nrm
以下是一些常见的 nrm 命令:
列出可用的源:当前配置的所有可用 npm 源以及它们的名称和 URL。
nrm ls
切换源:将当前的 npm 源切换为指定的源。可以使用源的名称或 URL 作为 参数。
nrm use <registry>
添加源:添加一个新的 npm 源并指定其名称和 URL。
nrm add <registry> <url>
删除源:删除指定的 npm 源,需要提供源的名称或 URL 作为 参数。
nrm del <registry>
测试源的速度:测试指定源的响应速度,并显示测试结果。
nrm test <registry>
显示当前使用的源:当前正在使用的 npm 源的名称和 URL。
nrm current