41

1. 介绍

npm包有很多的镜像源,有的源有的时候访问失败,有的源可能没有最新的包等等,所以有时需要切换npm的源,nrm包就是解决快速切换问题的。
nrm可以帮助您在不同的npm源地址之间轻松快速地切换。

nrm内置了如下源:

URL 主页
npm https://registry.npmjs.org/ https://www.npmjs.com/
cnpm http://r.cnpmjs.org/ https://cnpmjs.org/
taobao https://registry.npm.taobao.org/ https://npm.taobao.org/
npmMirror https://skimdb.npmjs.com/regi... https://skimdb.npmjs.com/
nj https://registry.nodejitsu.com/ https://www.nodejitsu.com/
rednpm http://registry.mirror.cqupt.... http://npm.mirror.cqupt.edu.cn/
edunpm http://registry.enpmjs.org/ http://www.enpmjs.org/

经过本人实测,nj、rednpm、edunpm 源访问失败(2018-12-19)。

2. 安装:npm install -g nrm

打开终端运行npm install -g nrm命令:

~ npm install -g nrm

/usr/local/bin/nrm -> /usr/local/lib/node_modules/nrm/cli.js
+ nrm@1.0.2
added 324 packages from 564 contributors in 13.338s

clipboard.png

查看是否安装成功:nrm --version

~ nrm --version

1.0.2

clipboard.png

3. 使用

3.1 列出可选择的源:nrm ls

nrm ls

~ nrm ls

  npm ---- https://registry.npmjs.org/
  cnpm --- http://r.cnpmjs.org/
* taobao - https://registry.npm.taobao.org/
  nj ----- https://registry.nodejitsu.com/
  rednpm - http://registry.mirror.cqupt.edu.cn/
  npmMirror  https://skimdb.npmjs.com/registry/
  edunpm - http://registry.enpmjs.org/

注: 前面带 * 号的表示正在使用的源

clipboard.png

3.2 切换使用的源:nrm use npm

nrm use npm

~ nrm use npm
                        
   Registry has been set to: https://registry.npmjs.org/

clipboard.png

3.3 添加一个源:nrm add <registry> <url>

如果你想添加一个源,终端执行命令nrm add <registry> <url> [home],reigstry为源名,url为源的路径, home为源的主页(可不写)。

 ~ nrm add company http://npm.company.com/   

    add registry company success

clipboard.png

注:

  1. URL最后的/也可以不带,下面两个URL都是可以的:
    http://npm.company.com/
    http://npm.company.com
  2. [home]参数用于nrm home命令,用来查看源的主页。

3.4 删除一个源:nrm del <registry>

想要删除一个源,终端执行命令nrm del <registry>,reigstry为源名.

 ~ nrm del company

    delete registry company success

clipboard.png

注:nrm del 命令不能删除nrm自己内置的源。

3.5 测试源速度:nrm test

测试一个源的响应时间:nrm test npm

~ nrm test npm

* npm ---- 833ms

测试所有源的速度:nrm test

~ nrm test

* npm ---- 807ms
  cnpm --- 374ms
  taobao - 209ms
  nj ----- Fetch Error
  rednpm - Fetch Error
  npmMirror  1056ms
  edunpm - Fetch Error

clipboard.png

3.6 访问源的主页:nrm home taobao

如果你想访问源的主页,可在终端输入下面命令:

nrm home taobao

此命令会在浏览器中打开淘宝源的主页:https://npm.taobao.org/

注:
如果要查看自己添加的源的主页,那么在添加源的时候就要把主页带上:

~ nrm add company http://npm.company.com/ http://npm.company.com/

如果添加源的时候没有写home信息,那么nrm home命令不会有效果。

4. 不使用nrm来切换源

如果不是nrm也能切换源,只不过比较麻烦。

  • 查看当前使用的源
    npm config get registry

    ~ npm config get registry
    https://registry.npmjs.org/
  • 设置一个源

    npm config set registry https://registry.npm.taobao.org/

    ~ npm config set registry https://registry.npm.taobao.org/

    设置成功后终端不会有任何输出。
    clipboard.png

  • 安装包使用特定源
    全部使用特定源安装:npm install --registry=https://registry.npm.taobao.org
    安装一个包使用特定源:npm i logo --registry=https://registry.npm.taobao.org

dragon
808 声望28 粉丝

一个前端页面开发者,用过react、vue前端框架