nvm 使用指南
NVM (Node Version Manager) 是一个用于管理多个 Node.js 版本的工具,让你可以轻松在不同项目间切换 Node.js 版本。
# 📋 目录
# 什么是 nvm
NVM 允许你:
- 🔄 安装多个 Node.js 版本
- 🔀 在不同版本间快速切换
- 📦 为每个版本管理独立的 npm 包
- 🎯 为不同项目指定特定版本
# 安装 nvm
# Linux/macOS
# 安装最新版本
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# 或者使用 wget
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
1
2
3
4
5
2
3
4
5
# Windows
# 使用 Chocolatey
choco install nvm
# 或下载安装包
# https://github.com/coreybutler/nvm-windows/releases
1
2
3
4
5
2
3
4
5
# 配置环境
安装后需要重新加载 shell 配置:
# 重新加载配置
source ~/.bashrc
# 或
source ~/.zshrc
# 验证安装
nvm --version
1
2
3
4
5
6
7
2
3
4
5
6
7
# 基础命令
# 查看版本信息
# 查看 nvm 版本
nvm --version
# 查看当前使用的 Node.js 版本
nvm current
# 查看所有已安装的版本
nvm ls
# 查看所有可用的远程版本
nvm ls-remote
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 安装和卸载
# 安装最新的 LTS 版本
nvm install --lts
# 安装指定版本
nvm install 18.17.0
nvm install 16.20.0
# 安装最新版本
nvm install node
# 卸载指定版本
nvm uninstall 16.20.0
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 切换版本
# 切换到指定版本
nvm use 18.17.0
nvm use 16
# 切换到 LTS 版本
nvm use --lts
# 设置默认版本
nvm alias default 18.17.0
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 版本管理
# 查看版本信息
# 列出所有已安装版本
nvm ls
# 列出所有远程可用版本
nvm ls-remote
# 列出特定版本(如 18.x)
nvm ls-remote | grep "^v18"
# 查看当前版本
nvm current
# 查看版本路径
nvm which 18.17.0
nvm which 18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 版本别名
# 创建别名
nvm alias stable 18.17.0
nvm alias dev 20.5.0
# 查看所有别名
nvm alias
# 删除别名
nvm unalias dev
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 项目配置
# .nvmrc 文件
在项目根目录创建 .nvmrc 文件:
# 在项目根目录
echo "18.17.0" > .nvmrc
# 使用项目指定的版本
nvm use
# 运行项目时自动使用指定版本
nvm run npm start
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 自动切换版本
在 ~/.zshrc 或 ~/.bashrc 中添加:
# 进入目录时自动切换 Node.js 版本
autoload -U add-zsh-hook
load-nvmrc() {
local node_version="$(nvm version)"
local nvmrc_path="$(nvm_find_nvmrc)"
if [ -n "$nvmrc_path" ]; then
local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")
if [ "$nvmrc_node_version" = "N/A" ]; then
nvm install
elif [ "$nvmrc_node_version" != "$node_version" ]; then
nvm use
fi
elif [ "$node_version" != "$(nvm version default)" ]; then
echo "Reverting to nvm default version"
nvm use default
fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 常用操作
# 运行特定版本的命令
# 使用指定版本运行命令
nvm exec 16.20.0 npm --version
# 使用指定版本运行脚本
nvm run 18.17.0 app.js
# 使用指定版本安装包
nvm exec 16.20.0 npm install -g yarn
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 包管理
# 升级当前版本的 npm
nvm install-latest-npm
# 从其他版本重新安装全局包
nvm reinstall-packages 16.20.0
# 查看全局包
npm list -g --depth=0
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 缓存管理
# 查看缓存目录
nvm cache dir
# 清理缓存
nvm cache clear
1
2
3
4
5
2
3
4
5
# 最佳实践
# 1. 版本选择策略
# 推荐使用 LTS 版本作为默认版本
nvm install --lts
nvm alias default lts/*
# 为不同环境设置别名
nvm alias stable 18.17.0 # 生产环境
nvm alias dev 20.5.0 # 开发环境
nvm alias legacy 14.21.0 # 旧项目
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 2. 项目版本管理
# 在项目根目录创建 .nvmrc
echo "18.17.0" > .nvmrc
# 团队协作时,确保所有人使用相同版本
# 在 package.json 中指定 engines
{
"engines": {
"node": ">=18.17.0 <19.0.0"
}
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 3. 性能优化
# 只保留必要的版本
nvm uninstall 14.21.0 # 删除不需要的版本
# 定期清理缓存
nvm cache clear
# 使用 --no-progress 加速安装
nvm install 18.17.0 --no-progress
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 4. 自动化脚本
#!/bin/bash
# 项目启动脚本
if [ -f .nvmrc ]; then
nvm use
fi
npm install
npm start
1
2
3
4
5
6
7
2
3
4
5
6
7
# 故障排除
# 常见问题
# 1. nvm 命令不识别
# 解决方案:重新加载 shell 配置
source ~/.bashrc
# 或
source ~/.zshrc
# 检查是否正确安装
which nvm
1
2
3
4
5
6
7
2
3
4
5
6
7
# 2. 版本切换失败
# 检查版本是否存在
nvm ls
# 重新安装版本
nvm uninstall 18.17.0
nvm install 18.17.0
1
2
3
4
5
6
2
3
4
5
6
# 3. npm 全局包丢失
# 重新安装全局包
nvm reinstall-packages 18.17.0
# 或者手动安装常用包
npm install -g yarn typescript nodemon
1
2
3
4
5
2
3
4
5
# 4. 权限问题
# 使用 sudo 安装(不推荐)
sudo npm install -g package-name
# 推荐:配置 npm 全局目录
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH
1
2
3
4
5
6
7
2
3
4
5
6
7
# 调试命令
# 查看 nvm 配置
nvm which node
nvm which npm
# 查看环境变量
echo $NVM_DIR
echo $PATH
# 查看安装日志
nvm install 18.17.0 --verbose
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 完整命令参考
# 基础命令
| 命令 | 说明 |
|---|---|
nvm --version | 显示 nvm 版本 |
nvm --help | 显示帮助信息 |
nvm current | 显示当前使用的版本 |
# 版本管理
| 命令 | 说明 |
|---|---|
nvm install <version> | 安装指定版本 |
nvm install --lts | 安装最新 LTS 版本 |
nvm install node | 安装最新版本 |
nvm uninstall <version> | 卸载指定版本 |
nvm use <version> | 切换到指定版本 |
nvm use --lts | 切换到 LTS 版本 |
# 版本查看
| 命令 | 说明 |
|---|---|
nvm ls | 列出已安装版本 |
nvm ls-remote | 列出远程可用版本 |
nvm ls-remote --lts | 列出远程 LTS 版本 |
nvm ls-remote <version> | 列出匹配的远程版本 |
# 别名管理
| 命令 | 说明 |
|---|---|
nvm alias | 显示所有别名 |
nvm alias <name> <version> | 创建别名 |
nvm unalias <name> | 删除别名 |
# 执行命令
| 命令 | 说明 |
|---|---|
nvm exec <version> <command> | 在指定版本执行命令 |
nvm run <version> <script> | 使用指定版本运行脚本 |
# 包管理
| 命令 | 说明 |
|---|---|
nvm install-latest-npm | 升级当前版本的 npm |
nvm reinstall-packages <version> | 重新安装全局包 |
# 缓存管理
| 命令 | 说明 |
|---|---|
nvm cache dir | 显示缓存目录 |
nvm cache clear | 清理缓存 |
# 实用示例
# 快速设置开发环境
nvm install --lts
nvm alias default lts/*
nvm use default
# 项目开发流程
cd my-project
nvm use # 使用项目指定的版本
npm install # 安装依赖
npm start # 启动项目
# 版本比较
nvm exec 16.20.0 node --version
nvm exec 18.17.0 node --version
# 批量操作
nvm install 16.20.0 18.17.0 20.5.0
nvm use 18.17.0
nvm alias default 18.17.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
上次更新: 2026/10/18, 22:14:48