npm源的问题
在使用 Node.js 开发时,npm
(Node Package Manager)是我们常用的包管理工具。然而,由于网络原因,使用默认的 npm 源进行包安装时,速度可能会很慢,甚至出现超时等问题。为了解决这个问题,国内的开发者通常会选择使用淘宝的 npm 镜像源。手动设置 npm 源虽然有效,但每次切换源时需要记住不同源的地址,操作起来不够方便。
手动切换npm源
如果你手动设置npm源,一般是如下操作的:
-
查看当前 npm 镜像源:
打开终端,输入以下命令:
1
npm config get registry
默认情况下,输出为 https://registry.npmjs.org/
。
-
设置国内镜像源:
您可以选择以下国内镜像源之一:
-
淘宝镜像源:
1
npm config set registry https://registry.npmmirror.com/
-
腾讯云镜像源:
1
npm config set registry http://mirrors.cloud.tencent.com/npm/
-
华为云镜像源:
1
npm config set registry https://mirrors.huaweicloud.com/repository/npm/
-
-
验证设置是否成功:
再次输入以下命令,检查当前的 npm 镜像源:
1
npm config get registry
如果输出为设置的镜像源地址(如 https://registry.npmmirror.com/
),则表示设置成功。
发现没有?手动切换镜像源虽好,但…
- 需要死记硬背镜像地址
- 每次切换都要敲长命令
- 测速对比全靠玄学
nrm神器登场
为了更加方便的切换npm的镜像源,nrm
(npm registry manager)应运而生。它是一个 npm 源管理工具,可以帮助我们在多个 npm 源之间快速切换,极大地提高了包管理的效率。
什么是 nrm?
nrm
是一个用于管理 npm 源的工具,允许开发者在不同的 npm 源之间快速切换。使用 nrm
,您可以轻松地切换到速度更快的源,例如淘宝镜像源,或者切换到公司内部的私有源。
nrm可以理解为是专治npm慢的瑞士军刀,具有以下用起来很爽的功能:
- 📦 支持多种主流镜像源一键切换
- ⚡ 内置测速功能找出最快源
- 🔄 秒切公司私有源/测试源
- 📊 可视化源状态管理
如何安装 nrm?
在安装 nrm
之前,建议先将 npm 的源设置为淘宝镜像源,以确保安装过程顺利。
-
设置 npm 源为淘宝镜像:
打开终端,执行以下命令,将 npm 的源设置为淘宝镜像:
1
npm config set registry https://registry.npmmirror.com/
-
全局安装 :
执行以下命令,使用淘宝镜像源安装
nrm
:1
npm install -g nrm
由于之前已将 npm 源设置为淘宝镜像,安装速度会明显提升。
如何使用 nrm?
安装完成后,您可以使用以下命令来管理 npm 源:
-
查看当前使用的源:
1
nrm current
-
查看所有可用的源:
1
nrm ls
该命令会列出所有配置的源,其中带有
*
标记的是当前使用的源。例如:1
2
3
4* npm ---- https://registry.npmjs.org/
taobao - https://registry.npmmirror.com/
cnpm --- http://r.cnpmjs.org/
... -
切换源:
要切换到其他源,例如切换到淘宝源,可以执行:
1
nrm use taobao
切换后,执行
nrm ls
,您会看到带有*
标记的源已变为淘宝源。 -
添加自定义源:
如果您需要添加公司内部的私有源,可以执行:
1
nrm add company http://npm.company.com/
-
删除源:
要删除某个源,例如删除名为
company
的源,可以执行:1
nrm del company
-
测试源的响应速度:
要测试某个源的响应速度,例如测试淘宝源,可以执行:
1
nrm test taobao
该命令会显示各个源的响应时间,帮助您选择最快的源。
比如我这里测试下各个源的响应速度:
1 | ➜ ~ nrm test |
很明显,taobao的速度是最快的,立马执行nrm use taobao
切换过去。