本文介绍了如何使用 nvm 切换 node.js 与 npm 版本,以及如何使用 nrm 切换 npm 下载源。
1. NVM
在开发不同项目时,可能会用到不同版本的 node.js 与 npm,最直接的的方式就是卸载当前版本的 node.js,然后下载安装另一个版本的 node.js。现在使用 nvm 可以帮助我们方便地切换 node.js 与 npm 版本。
先看看 github 上关于 nvm 的介绍
所以,nvm 是 node.js 版本管理工具。
1.1 卸载 node 与 npm
- 在安装 nvm 之前,一定要先卸载已安装的 node.js,否则可能会出现版本冲突,无法切换 node.js 版本等问题
- 除此之外,还要将之前安装的 npm 全局插件删除掉,否则可能提示 nvm 不是内部或外部命令的问题
windows 用户
- 在设置中找到应用,搜索 node,卸载
- 删除之前安装的 npm 全局插件,找到以下文件目录中的 npm 插件,删除
C:\Users\a\AppData\Roaming\npm C:\Users\a\AppData\Roaming\npm-cache
macos 用户
- 要先卸载 npm
sudo npm uninstall npm -g
- 再卸载 node.js
sudo rm -rf /usr/local/lib/node /usr/local/lib/node\_modules /var/db/receipts/org.nodejs.\* sudo rm -rf /usr/local/include/node /Users/\$USER/.npm sudo rm /usr/local/bin/node sudo rm /usr/local/share/man/man1/node.1 sudo rm /usr/local/lib/dtrace/node.d
- 验证是否卸载成功
node -v npm -v
1.2 安装 nvm
打开 github,搜索 nvm,找到 nvm-sh/nvm 与 coreybutler/nvm-windows
windows 用户
- 点击进入 coreybutler/nvm-windows,找到 README.md,点击 Download Now
- 在 releases 页面找到对应版本的 nvm 安装包,下载安装即可。这里使用了最新的安装包,按照 manual installation 指南操作。如果 NVM4W 安装后没有立马生效,重启 terminal 或 powershell
- nvm 安装完成之后,在终端输入
nvm -v
测试,提示版本就表示成功 - 每次切换 node 版本,都需要重新全局 install 一下包管理器
nvm use 14.0.0 npm install -g yarn nvm use 12.0.1 npm install -g yarn
macos 用户
-
点击进入 nvm-sh/nvm,找到 README.md,点击 Installing and Updating
-
在终端输入安装脚本
curl -o- <https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh> | bash
在苹果 10.15.7这个版本上(macOS Catalina),执行安装脚本
-
安装确认
在终端输入
nvm -v
测试- 提示版本就表示成功
- 提示
zsh: command not found: nvm
说明未生效。
输入命令
source \~/.bash\_profile
依旧为生效
-
回到 README.md 中,寻找解决办法
重新打开一个终端,输入nvm -v
,好了nvm -v 0.39.3
1.3 升级 nvm
windows用户
1.4 使用 nvm
windows 用户
输入 nvm 即可查看所用命令
nvm version
:显示当前运行的 nvm 版本nvm install <version>
:可以指定版本安装,也可以输入 latest、lts
nvm list
:列出已安装的 node.js
当前 node 版本是14.18.1,对应 npm 版本是 6.14.15
nvm use <version>
:切换 node.js 版本
nvm uninstall <version>
:卸载指定版本的 node.js- 关于国区速度慢的小伙伴,在 nvm 目录下找到
settings.txt
文件,添加下面两行代码root: C:\nvm path: C:\Program Files\nodejs + node_mirror: <https://npm.taobao.org/mirrors/node/> + npm_mirror: <https://npm.taobao.org/mirrors/npm/>
macos 用户
输入 nvm 即可查看所用命令
使用示例
Example:
nvm install 8.0.0 Install a specific version number
nvm use 8.0 Use the latest available 8.0.x release
nvm run 6.10.3 app.js Run app.js using node 6.10.3
nvm exec 4.8.3 node app.js Run `node app.js` with the PATH pointing to node 4.8.3
nvm alias default 8.1.0 Set default node version on a shell
nvm alias default node Always default to the latest available node version on a shell
nvm install node Install the latest available version
nvm use node Use the latest version
nvm install --lts Install the latest LTS version
nvm use --lts Use the latest LTS version
nvm set-colors cgYmW Set text colors to cyan, green, bold yellow, magenta, and white
Note:
to remove, delete, or uninstall nvm - just remove the `$NVM_DIR` folder (usually `~/.nvm`)
-
nvm --version
:显示当前运行的 nvm 版本
-
nvm install <version>
:可以指定版本安装,也可以输入 latest、lts -
nvm list
:列出已安装的 node.js
当前 node 版本是14.18.1,对应 npm 版本是 6.14.15
-
nvm use <version>
:切换 node.js 版本
-
nvm uninstall <version>
:卸载指定版本的 node.js
2. NRM
nrm 全称 NPM registry manager,镜像源管理工具。
2.1 依赖包的源从哪里来?
直接使用 npm 命令安装依赖包,安装速度可能会很慢甚至出现异常,因为使用 npm 命令安装依赖包默认是从国外服务器下载的。
当我们 npm install
速度太慢或出现异常,亦或要使用公司内部定制的私有源时,就要切换 npm 源了。
如何切换 npm 源?
-
查看当前 npm 源
$ npm config get registry
-
npm 源设置为 taobao 镜像源
$ npm config set registry=https://registry.npm.taobao.org/
切换了源,接下来就要
npm install
了,其实也可以直接指定源去安装依赖包$ npm install --registry=https://registry.npm.taobao.org/
-
切换回 npm 源
$ npm config set registry=https://registry.npmjs.org/
上面的操作仅仅是修改了下载依赖包的源,npm 指令还是不变的,每次切换源都要输一长串源地址,这就很烦!那我们想,能否在使用 npm 源与 taobao 镜像源时,使用不同的指令呢?
2.2 不得不说的 taobao 镜像源
-
我们可以使用淘宝定制的 cnpm命令行工具 代替默认的 npm
$ npm install -g cnpm --registry=https://registry.npmmirror.com
-
安装模块
$ cnpm install [moduleName]
-
同步模块
直接通过
sync
命令马上从 npm 同步一个模块, 只有cnpm
命令行才有此功能$ cnpm sync [moduleName]
这样,我们就可以使用 npm
命令行去操作 npm 源,使用 cnpm
命令行去操作 taobao 镜像源。
2.3 nrm — NPM registry manager
npm 源的地址是 registry.npmjs.org/ ,taobao 镜像源的地址是 registry.npmmirror.com/ ,依赖包的源肯定不止这俩,源地址一多,就需要集中管理,那 nrm 就是我们要的 npm 依赖包管理工具。
2.4 安装与使用 nrm
-
全局安装 nrm
$ npm install -g nrm@1.0.0 $ nrm -V $ nrm --version
-
添加源
主要适用于公司内部定制的私有源
$ nrm add [自定义源名称] 源地址 $ nrm add <registry> <url> $ nrm add yarn https://registry.yarnpkg.com/ $ nrm add taobao https://registry.npmmirror.com/
-
查看源
$ 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/
-
切换源
nrm use taobao
-
测试源的响应速度
$ nrm test npm ---- 843ms cnpm --- 13238ms taobao - 12287ms nj ----- Fetch Error rednpm - 175ms npmMirror 959ms edunpm - Fetch Error * coding - 12314ms
-
删除源
$ nrm del coding