一、为什么需要 nvm?
在日常开发中,我们经常会遇到需要切换 Node.js 版本的情况:
| 场景 | 说明 |
|---|---|
| 不同项目需求不同 | 项目 A 需要 Node.js 18,项目 B 需要 Node.js 16 |
| 兼容性测试 | 测试应用在不同 Node.js 版本下的运行情况 |
| 版本升级 | 方便升级到最新版本,同时保留旧版本以便回退 |
| 尝鲜新特性 | 使用 Current 版本体验新功能,不影响生产项目 |
nvm(Node Version Manager) 正是为了解决这些问题而生的工具,它可以让你在同一台机器上安装和管理多个 Node.js 版本,并在它们之间快速切换。
二、安装 nvm
在 macOS / Linux 上安装
使用 curl 安装:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
或使用 wget 安装:
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
安装完成后,重新加载 shell 配置:
# 如果使用 bash source ~/.bashrc # 如果使用 zsh source ~/.zshrc
验证安装是否成功:
nvm --version # 输出类似:0.39.3
在 Windows 上安装(nvm-windows)
Windows 用户需要使用 nvm-windows(不同于 macOS/Linux 的 nvm):
-
访问 nvm-windows 发布页面:https://github.com/coreybutler/nvm-windows/releases
-
下载
nvm-setup.zip -
解压并运行安装程序,按照向导完成安装
安装完成后,打开新的命令行窗口验证:
nvm --version
三、nvm 常用命令
版本管理命令
| 命令 | 说明 |
|---|---|
nvm --version |
查看 nvm 版本 |
nvm list-remote |
列出所有可安装的 Node.js 版本(macOS/Linux) |
nvm list available |
列出可安装的 Node.js 版本(Windows) |
nvm install <版本号> |
安装指定版本 |
nvm install --lts |
安装最新的 LTS 版本 |
nvm uninstall <版本号> |
卸载指定版本 |
版本切换命令
| 命令 | 说明 |
|---|---|
nvm list 或 nvm ls |
列出已安装的版本 |
nvm use <版本号> |
切换到指定版本 |
nvm current |
查看当前使用的版本 |
nvm alias default <版本号> |
设置默认版本 |
四、实际使用示例
1. 查看可安装的版本
# macOS/Linux nvm list-remote # 输出大量版本列表,如 v18.17.0, v20.10.0 等 # Windows nvm list available
2. 安装特定版本
# 安装 Node.js 18.17.0 nvm install 18.17.0 # 安装 Node.js 16.20.1 nvm install 16.20.1 # 安装最新的 LTS 版本 nvm install --lts
3. 列出已安装的版本
nvm list
输出示例:
-> v16.20.1 v18.17.0 system default -> v16.20.1 (-> v16.20.1)
->表示当前正在使用的版本
4. 切换版本
# 切换到 Node.js 18.17.0 nvm use 18.17.0 # 验证当前版本 node --version # 输出:v18.17.0 # 切换到 Node.js 16.20.1 nvm use 16.20.1 # 验证当前版本 node --version # 输出:v16.20.1
5. 查看当前使用的版本
nvm current # 输出类似:v18.17.0
6. 设置默认版本
每次打开新终端时,默认使用的版本:
nvm alias default 18.17.0
7. 卸载版本
nvm uninstall 16.20.1
五、项目级版本管理(.nvmrc)
nvm 支持通过 .nvmrc 文件为项目指定 Node.js 版本,实现自动切换。
创建 .nvmrc 文件
在项目根目录下创建 .nvmrc 文件,写入需要的版本号:
# 在项目目录中 echo "18.17.0" > .nvmrc
使用 .nvmrc
进入项目目录后,执行 nvm use 会自动读取 .nvmrc 中的版本:
cd my-project nvm use # 输出:Found '/my-project/.nvmrc' with version <18.17.0> # 自动切换到 v18.17.0
六、不同项目使用不同版本
# 项目 A 使用 Node.js 18 cd ~/projects/project-a nvm use 18.17.0 node --version # v18.17.0 # 项目 B 使用 Node.js 16 cd ~/projects/project-b nvm use 16.20.1 node --version # v16.20.1
这样在不同的项目目录之间切换时,可以快速切换到对应的 Node.js 版本。
七、验证安装是否成功
1. 检查 nvm 版本
nvm --version
2. 创建测试程序
创建一个名为 hello.js 的文件:
// hello.js console.log('Hello, Node.js!'); console.log('Node.js 版本:', process.version); console.log('当前工作目录:', process.cwd()); console.log('操作系统:', process.platform);
运行测试:
node hello.js
预期输出(版本号取决于当前使用的版本):
Hello, Node.js! Node.js 版本: v18.17.0 当前工作目录: /Users/username/projects 操作系统: darwin
3. 检查全局安装路径
# 查看 npm 全局包安装路径 npm config get prefix # 查看 npm 配置 npm config list # 查看 Node.js 安装路径(macOS/Linux) which node # 查看 Node.js 安装路径(Windows) where node
八、本章小结
| 知识点 | 说明 |
|---|---|
| nvm 是什么 | Node Version Manager,用于管理多个 Node.js 版本 |
| 安装方式 | macOS/Linux 用 curl/wget;Windows 用 nvm-windows |
| 常用命令 | nvm install、nvm use、nvm list、nvm alias |
| 项目配置 | 使用 .nvmrc 文件为项目指定版本 |
| 默认版本 | nvm alias default 设置默认使用的版本 |
| 多项目切换 | 不同项目目录使用不同 Node.js 版本 |
提示 :养成在项目根目录放置
.nvmrc文件的习惯,团队成员也能自动使用正确的 Node.js 版本。