NVM 是 Node Version Manager(Node版本管理器)的缩写。它是一个用于在单个计算机上管理和切换多个 Node.js 版本的命令行工具。
为什么要用 NVM?
- 项目兼容性:不同的项目可能依赖不同版本的 Node.js
- 测试验证:可以在不同版本中测试代码兼容性
- 平滑升级:可以安装新版本试用,不影响现有项目
- 避免权限问题:安装在用户目录,无需 sudo 权限
安装 NVM
macOS/Linux
bash
# 使用安装脚本(推荐)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# 或使用 wget
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
安装后重启终端或运行:
bash
source ~/.bashrc # 或 ~/.zshrc, ~/.profile
Windows
使用 nvm-windows(独立项目):
- 下载地址:github.com/coreybutler…
- 下载
nvm-setup.exe并安装
常用命令大全
版本管理
| 命令 | 说明 |
|---|---|
nvm --version | 查看 nvm 版本 |
nvm install --lts | 安装最新的 LTS 版本 |
nvm install 18.19.0 | 安装指定版本(如 18.19.0) |
nvm install node | 安装最新稳定版 |
nvm uninstall 14.17.0 | 卸载指定版本 |
nvm reinstall-packages 16.20.0 | 重装当前版本的全局包到新版本 |
版本切换与查看
| 命令 | 说明 |
|---|---|
nvm ls | 查看已安装的所有版本 |
nvm ls-remote | 查看所有可安装的远程版本 |
nvm ls-remote --lts | 查看所有 LTS 版本 |
nvm current | 查看当前使用的版本 |
nvm use 16.20.0 | 切换到指定版本 |
nvm use --lts | 切换到最新的 LTS 版本 |
nvm use node | 切换到最新稳定版 |
nvm alias default 18.19.0 | 设置默认版本(新开终端自动使用) |
其他实用命令
| 命令 | 说明 |
|---|---|
nvm which current | 查看当前 Node.js 的安装路径 |
nvm cache dir | 查看 nvm 缓存目录 |
nvm cache clear | 清理 nvm 缓存 |
nvm run 14.17.0 app.js | 使用指定版本运行脚本 |
nvm exec 16.20.0 npm --version | 在指定版本下执行命令 |
nvm unload | 从当前 shell 卸载 nvm |
实际工作流示例
场景1:新项目使用特定 Node 版本
bash
# 1. 查看项目要求的 Node 版本(看 package.json 或 .nvmrc)
cat .nvmrc # 如果有这个文件
# 2. 安装所需版本
nvm install 18.19.0
# 3. 切换到该版本
nvm use 18.19.0
# 4. 验证版本
node --version # 应该显示 v18.19.0
场景2:管理多个项目
bash
# 项目A 使用 Node 16
cd ~/projects/project-a
nvm use 16.20.0
npm start
# 项目B 使用 Node 18
cd ~/projects/project-b
nvm use 18.19.0
npm start
场景3:创建 .nvmrc 文件(推荐)
在项目根目录创建 .nvmrc 文件:
bash
# 写入版本号
echo "18.19.0" > .nvmrc
# 然后只需运行
nvm use
# nvm 会自动读取 .nvmrc 并切换版本
常见问题解决
1. 安装 nvm 后 node 命令找不到
bash
# 确保 nvm 已加载
source ~/.bashrc # 或 ~/.zshrc
# 如果还不行,检查 shell 配置文件是否有 nvm 初始化代码
2. Windows 下提示 "exit status 1"
以管理员身份运行命令提示符或 PowerShell。
3. 切换版本后全局包丢失
bash
# 重装全局包到新版本
nvm reinstall-packages 旧版本号
4. 安装缓慢或失败
bash
# 设置淘宝镜像(中国用户)
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
# 然后再安装
nvm install 18.19.0
小贴士
-
LTS vs Current:
- LTS(长期支持版):生产环境推荐,稳定性高
- Current(当前版):有最新特性,但可能不稳定
-
版本命名:
18.19.0= 主版本.次版本.修订版本- 偶数主版本号(16、18、20)通常是 LTS
-
项目规范:团队项目建议创建
.nvmrc文件,确保所有人使用相同版本 -
结合 npm/yarn:切换 Node 版本后,可能需要重新安装
node_modules:bash
rm -rf node_modules package-lock.json npm install -
nvm安装低版本node 比如nvm install 14 可能install的node包不完整,如果遇到 自行下载完整的node包,拷贝到nvm的node版本管理目录
掌握 NVM 是前端工程师必备技能,它能让你在不同项目间无缝切换,大大提升开发效率!