介绍
如果你有多个 Node.js 项目,可能会遇到这种情况。你已经安装了最新版本的 Node.js,但是另一个项目却依赖一个较旧的版本。在这种情况下, nvm 会帮你到,它允许安装多个版本的 Node.js,并且可以根据需要随时在它们之间切换。
本文将介绍安装 nvm 然后学习如何安装,删除以及如何在不同的 Node.js 版本之间进行切换。
事先准备
要完成本篇教程,你需要确保在电脑上已安装 Node.js 的最新版。
第 1 步 - 开始
首先你需要把 Node Version Manager 简称 nvm 安装到系统。可以运行如下命令手动安装:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
如果你用的是 wget ,可以运行这个命令:
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
然后你会看到输出如下:
运行上述其中一个命令会下载一个脚本并运行。这个脚本把 nvm 仓库克隆到 /.nvm,然后尝试把此命令的路径追加到对应的描述文件里(/.bash_profile,/.zshrc,/.profile, 或 /.bashrc)。如果你在描述文件里没有看到,可以手动运行如下命令执行这一过程:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
nvm 安装后,重启终端运行如下命令检查 nvm 的版本:
nvm — version
下一步是安装 Node.js 的多个版本了。
第 2 步 - 安装 Node.js 的多个版本
要下载,编译并安装最新的 node 版本,可以这样做:
nvm install node # "node" is an alias for the latest version
要安装 node 的某个版本:
nvm install 6.14.4 # or 10.10.0, 8.9.1, etc
要安装某个版本的长期维护版本
如果你想要安装一个发行版的长期维护版本,只需要指定它的版本即可:
然后会看到输出如下:
安装 Node 12 LTS
更改 node 的默认版本
要把最新的稳定版设置为默认版本,运行:
你也可以把某个指定版本设置为默认版本。运行:
第 3 步 - 列出已安装的 Node.js 版本
在安装了几个不同的 Node.js 版本之后,我们可以运行 nvm 配合 ls 参数来列出所有已安装的版本:
运行命令后会看到如下输出:
nvm ls
你输出的内容可能与上图不同,取决于你在本地安装的 Node.js 版本的多少。
小箭头 -> 表示当前正在使用的版本,default -> 表示 Node.js 默认的版本。Node 的默认版本就是当你打开一个命令行窗口时所用的版本。system 对应的是系统中在 nvm 外安装的那个 Node.js 版本。
第 4 步 - 在不同的 Node.js 版本之间切换
要切换到 Node.js 的另一个版本,运行 nvm 命令配合 use 参数后面跟上你想使用的版本号:
你会看到输出如下:
nvm use 8
你也可以切换回默认的版本:
至此你已经安装了 Node.js 的几个不同版本。可以使用 nvm 来删除不在需要的 Node.js 版本。
第 6 步 - 删除 Node.js 版本
你已经安装几个不同版本的 Node.js ,也可以删除那些版本,和安装时一样容易:
不过,当你指定了一个大版本号或者小版本号时,nvm 只卸载匹配版本号的最新安装的那个版本。
所以,如果你安装了两个不同版本的 Node.js 6 版本,你需要为每个版本都要运行 uninstall 命令:
$ nvm uninstall 6
Uninstalled node v6.14.4
$ nvm uninstall 6
Uninstalled node v6.10.3
值得一提的是你不能删除当前正在使用的 Node.js 版本。
也许你想回到系统默认设置,不再使用 nvm。下一步会介绍如何做。
第 7 步 - 卸载 nvm
如果你想从电脑上彻底删除 nvm,可以使用 unload 命令:
问题
关闭终端后 commond not found:nvm
我遇到的问题是: 当前安装 nvm 成功了,但是每次关闭终端后,都需要重新执行 source .bash_profile
才能重新使用 nvm 命令,否则提示 commond not found:nvm
解决方法: 配置 .bash_profile 和 .zshrc
(1)配置 .bash_profile 文件
打开.bash_profile文件
open ~/.bash_profile
添加配置
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
保存配置后在终端执行
source ~/.bash_profile
(2)配置 .zshrc 文件
打开.zshrc文件
open ~/.zshrc
添加配置
export NVM_DIR=~/.nvm [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
保存配置后在终端执行
结语
在多个使用不同 Node.js 版本的项目上工作并没有那么头疼,有了 nvm 可以做到无缝切换。如果你懒得去切换版本,可以在项目根目录中创建一个 .nvmrc 文件:
希望本文涵盖了在 MacOS 上管理多个 Node 版本所需的一切知识点,能在工作上能有所帮助。
评论区