nvm 安装与使用指南
什么是 nvm
nvm(Node Version Manager)是一个 Node.js 版本管理工具,允许你在同一台机器上安装和切换多个 Node.js 版本。不同项目可能依赖不同的 Node.js 版本,nvm 可以轻松解决这个问题。
Windows 用户请使用 nvm-windows,它是 nvm 的 Windows 移植版本,使用方式基本一致。
安装
Windows
- 前往 nvm-windows Releases 下载最新的
nvm-setup.exe - 运行安装程序,建议自定义安装路径(例如
D:\software\nvm) - 安装过程中会提示设置 Node.js 的 symlink 目录(例如
D:\software\nodejs) - 安装完成后重新打开终端
macOS / Linux
bash
# 使用官方安装脚本
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
# 或使用 wget
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash安装完成后,重启终端或执行:
bash
source ~/.bashrc # bash 用户
source ~/.zshrc # zsh 用户验证安装
bash
nvm version
# 输出类似:1.1.12(Windows)或 0.40.1(macOS/Linux)常用命令
查看可安装的版本
bash
# 查看所有可用的远程版本
nvm list available # Windows
nvm ls-remote # macOS/Linux
# 查看所有可用的 LTS 版本
nvm ls-remote --lts # macOS/Linux安装 Node.js
bash
# 安装指定版本
nvm install 18.20.0
nvm install 20.11.1
# 安装最新的 LTS 版本
nvm install --lts # macOS/Linux
nvm install lts # Windows切换版本
bash
# 切换到指定版本
nvm use 18.20.0
nvm use 20.11.1
# 验证当前版本
node -v查看已安装的版本
bash
nvm list # Windows
nvm ls # macOS/Linux输出示例:
* 20.11.1 (Currently using 64-bit executable)
18.20.0
16.20.2设置默认版本
bash
# macOS/Linux:设置默认版本(新终端自动使用)
nvm alias default 20.11.1
# Windows:设置默认版本
nvm use 20.11.1
# nvm-windows 会记住最后一次 use 的版本卸载版本
bash
nvm uninstall 16.20.2项目级版本锁定
在项目根目录创建 .nvmrc 文件,指定项目所需的 Node.js 版本:
bash
# 写入版本号
echo "20.11.1" > .nvmrc之后在项目目录下执行:
bash
nvm use # macOS/Linux 会自动读取 .nvmrcWindows 的 nvm-windows 不支持自动读取
.nvmrc,需要手动nvm use <版本号>。
Windows 安装到非 C 盘
如果你希望 nvm 和 Node.js 都安装在 D 盘,安装时需要注意两个路径:
- nvm 安装路径:
D:\software\nvm - Node.js symlink 路径:
D:\software\nodejs
安装完成后检查环境变量:
bash
# 确认以下两个环境变量已设置
echo %NVM_HOME% # 应输出 D:\software\nvm
echo %NVM_SYMLINK% # 应输出 D:\software\nodejs同时确认系统 PATH 中包含这两个路径。
配置镜像源加速
国内用户下载 Node.js 可能较慢,可以配置镜像:
bash
# Windows:编辑 nvm 安装目录下的 settings.txt,添加:
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/bash
# macOS/Linux:设置环境变量
export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/常见问题
Q: nvm use 切换后,新终端又变回去了?
macOS/Linux:需要设置默认版本 nvm alias default <版本号>。
Windows:nvm-windows 会记住最后一次 nvm use 的版本,正常情况下不会重置。如果出现问题,检查环境变量中是否有其他 Node.js 路径冲突。
Q: 全局安装的 npm 包切换版本后找不到了?
每个 Node.js 版本有独立的全局包目录。切换版本后需要重新安装全局包,或者使用以下方式迁移:
bash
# macOS/Linux:切换版本时自动迁移全局包
nvm install 20.11.1 --reinstall-packages-from=18.20.0Q: 和 Volta、fnm 有什么区别?
| 工具 | 语言 | 速度 | Windows 支持 | 自动切换 |
|---|---|---|---|---|
| nvm | Shell | 一般 | nvm-windows | .nvmrc |
| fnm | Rust | 快 | 原生支持 | .nvmrc / .node-version |
| Volta | Rust | 快 | 原生支持 | package.json |
nvm 是最老牌、社区最成熟的方案。如果追求速度可以考虑 fnm。
