本文介绍了如何使用 nvm 切换 node 和 npm 版本,以及如何使用 nrm 切换 npm 下载源。


一、NVM

Nvm 可以切换 nodenpm 版本,在开发不同项目时,可能会用到不同的 nodenpm 版本,所以使用 nvm 可以方便的在不同 nodenpm 版本之间进行切换。

写在前面

  • 在安装 Nvm 之前,先将之前安装的 node 进行卸载。否则可能会出现无法切换 node 版本的问题
  • 将之前安装的全局插件删除掉,否则可能会导致 nvm 命令不起作用。文件目录如下
C:\Users\Administrator\AppData\Roaming\npm
C:\Users\Administrator\AppData\Roaming\npm-cache
复制代码

nvm 的安装

下载 nvm 插件,安装地址: Github: Download nvm-windows (nvm-setup.zip)

下载完成,解压文件之后,双击进行安装:

  1. 设置 nvm 安装目录,这里的路径可以根据自己的需要进行填写,不要包含中文名
  2. 设置 nodejs 各版本安装目录。这个目录是 nvm install node版本 时存放 nodejs 的目录
  3. 安装完成,在命令行输入:nvm version,查看到对应的版本号,说明 nvm 安装成功了。

nvm 常用命令

  • nvm install latest: 安装最新的 nodejs 版本
  • nvm install 11.12.0: 安装对应的 nodejs 版本
  • nvm uninstall 11.12.0:卸载对应的 nodejs 版本
  • nvm list available: 列出所有可用的 nodejs 版本
  • nvm list: 查看 nvm 列出已经安装的 nodejs 版本
  • nvm use 11.12.0: 使用对应的 nodejs 版本
  • 更多命令在命令行输入 nvm 即可查看

常见问题

  • 提示 nvm 不是内部或外部命令的问题
  • 将之前 npm 安装的全局包删除掉。文件目录如下:
C:\Users\Administrator\AppData\Roaming\npm
C:\Users\Administrator\AppData\Roaming\npm-cache
复制代码
  • nvm 切换 node 版本无效的问题
  • 卸载原来安装的 node 版本与全局安装的包
  • nvm 下载速度慢的问题
  • 在 nvm 安装目录下找到 settings.txt 文件,添加下面两行代码:
root: D:\DevTools\NVM\nvm
path: D:\DevTools\NVM\nodejs
+ node_mirror: https://npm.taobao.org/mirrors/node/
+ npm_mirror: https://npm.taobao.org/mirrors/npm/
复制代码

二、NRM

在使用 npm 的过程中,可能插件安装速度比较慢,我们可能会使用淘宝源对插件进行下载安装。或者在公司内部,有一些私有的插件,需要使用公司的源才可以下载。这种情况,我们就需要设置不同的源来进行下载。每次手动设置相对比较麻烦。而 nrm 可以很好的解决这个问题。

nrm 的安装

# 全局安装 nrm
$ npm install nrm -g
复制代码

安装完成后,输入命令 nrm ls,可以看到默认已经有了 6 个源(带 * 号的为当前使用的源)

* npm ---- https://registry.npmjs.org/
  cnpm --- http://r.cnpmjs.org/
  taobao - https://registry.npm.taobao.org/
  nj ----- https://registry.nodejitsu.com/
  npmMirror  https://skimdb.npmjs.com/registry/
  edunpm - http://registry.enpmjs.org/
复制代码

输入 nrm use taobao,即切换 registry 到 taobao,即可使用淘宝的源进行插件的安装下载了。

nrm 常用命令

  • nrm ls :查看所有配置好的源以及对应名称
  • nrm add company http://npm.xxx.cn:添加源,company 是名称,可以自行命名,后面是源的 url 地址
  • nrm del company :删除源,根据名称 company 可以删除对应的源
  • nrm test [registry] :测试源的速度,不加对应的 registry 名称,测试所有源的速度,添加对应的名称,比如 company,就是测试 company 对应的源的速度
  • nrm use company :切换源,即可使用 company 对应名称的源
  • 更多命令在命令行输入 nrm 即可查看

三、额外知识点

  • 安装 cnpm:npm install -g cnpm --registry=https://registry.npm.taobao.org
  • 设置 npm 全局包的安装路径(如果不想自己控制路径就不需要做下面这些操作):
  • 执行命令:npm config set prefix "D:\DevTools\Nvm\npm-global"
  • 设置环境变量:将 Path 中: C:\\Users\\Administrator\\AppData\\Roaming\\npm 修改为 D:\\DevTools\\Nvm\\npm-global
  • 查看已经安装的全局包:npm ls -g --depth=0
  • 手动设置 npm 源
  • npm config get registry : 查看 npm 当前源
  • npm config set registry https://registry.npm.taobao.org/:设置 npm 源为淘宝
  • npm install --registry=https://registry.npm.taobao.org :使用特定源安装所有依赖的包
  • npm install express --registry=https://registry.npm.taobao.org:使用特定源安装 express 包