nrm(NPM registry manager)是 npm 的镜像源管理工具,使用 nrm 可以快速方便的更换 npm 使用的镜像源。

使用 npm 安装 Nodejs 软件包,Nodejs 软件包会从 npm 默认配置的镜像源下载软件包,然后再安装。npm 默认的镜像源https://registry.npmjs.org/, 它一个国外的 Nodejs 软件包镜像源,在国内访问该镜像源可能会出现速度过慢或者无法下载软件包的问题,因此推荐更换为国内的 npm 镜像源。

国内的 npm 镜像源有很多,比较常用的有淘宝(阿里)、腾讯、华为等镜像源和一些大学提供的 npm 镜像源。

npm 命令换源

更换 npm 镜像源可以使用 npm 命令:

sudo npm config set registry https://registry.npmmirror.com/

使用该种方法,命令比较难记,且复杂;使用 nrm 能够快速简便的更换 Nodejs 使用的镜像源。

安装 nrm

1、全局安装

此种安装方式把 nrm 软件包安装到系统目录下,同时 nrm 命令也安装到 PATH 目录中,方便直接使用 nrm 命令。

sudo npm install -g --no-fund nrm

2、查看 nrm 版本

nrm -V

使用 nrm

查看 nrm 默认配置的镜像源

nrm ls

在如下显示的镜像源列表中,* 表示当前使用的镜像源:

  npm ---------- https://registry.npmjs.org/
  yarn --------- https://registry.yarnpkg.com/
  tencent ------ https://mirrors.cloud.tencent.com/npm/
  cnpm --------- https://r.cnpmjs.org/
* taobao ------- https://registry.npmmirror.com/
  npmMirror ---- https://skimdb.npmjs.com/registry/

在如上的 npm 镜像源列表中,每一行表示一个镜像源 registry 由两部分组成,它们是 name 和 url。

使用 nrm 更换镜像源

更换镜像源只需要指定镜像源 registry 的 name 不需要使用 url,这也就是使用 nrm 更换镜像源比使用 npm 命令简单的原因。

nrm use taobao

为 nrm 添加镜像源

nrm 默认提供的镜像源有限,如果你要使用其他的镜像源,可以为 nrm 添加自己的镜像源

nrm add name url

以添加浙江大学 npm 镜像源为例,为 nrm 添加自己的镜像源

nrm add zheda https://mirrors.zju.edu.cn/npm

删除 nrm 镜像源

语法格式(只需指定需要删除的镜像源 registry 的 name):

nrm del name

以删除淘宝 npm 镜像源为例,为 nrm 删除自己的镜像源

nrm del zheda

测试镜像源的网速

语法格式(只需指定需要测试网速的镜像源 registry 的 name):

nrm test name

测试所有 nrm 默认提供的镜像源的速度:

nrm test npm
nrm test yarn
nrm test tencent
nrm test cnpm
nrm test taobao
nrm test npmMirror

nrm 镜像源网速测试结果:

  npm ---- timeout (Fetch timeout over 5000 ms)
  yarn ---- timeout (Fetch timeout over 5000 ms)
    tencent ---- 1822 ms
    cnpm ---- 565 ms
    taobao ---- 190 ms
    npmMirror ---- 2822 ms

从测试结果可以看出,taobao 镜像源,也就是阿里云镜像源的网速最快,因此推荐使用淘宝(taobao)镜像源。