nvm 管理 node 版本
nvm(Node Version Manager)是一款 Node.js 版本管理工具,核心作用是解决「不同项目依赖不同 Node.js 版本」的冲突问题——无需手动卸载/安装 Node,只需通过命令即可快速切换全局或项目级的 Node 版本,是前端/Node 开发的必备工具。
以下是 nvm 的 核心概念、安装步骤、常用命令及实战场景,帮你彻底掌握其用法:
一、为什么需要 nvm?
开发中常遇到的痛点:
- 项目 A 依赖 Node.js 14.x(旧版依赖不兼容高版本);
- 项目 B 依赖 Node.js 20.x(需新特性支持);
- 手动安装多个 Node 版本,切换时需反复修改系统环境变量,效率极低。
nvm 可一键实现:
- 同时安装多个 Node 版本;
- 快速切换全局 Node 版本;
- 为单个项目指定专属 Node 版本;
- 自动管理 Node 对应的 npm/yarn 版本(无需单独维护)。
二、安装 nvm(分系统说明)
注意:Windows 和 macOS/Linux 的 nvm 不是同一个工具,需区分安装(核心功能一致,但命令略有差异)。
1. macOS/Linux 系统(原生 nvm)
步骤 1:卸载已有的 Node(可选但推荐)
若之前手动安装过 Node,需先卸载(避免冲突):
# 查看当前 Node 路径
which node # 输出类似 /usr/local/bin/node
# 删除 Node 及相关文件
sudo rm -rf /usr/local/bin/node
sudo rm -rf /usr/local/lib/node_modules步骤 2:安装 nvm
通过官方脚本安装(需联网):
# 官方安装命令(推荐)
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步骤 3:验证安装
关闭终端重新打开,执行以下命令,若显示版本号则安装成功:
nvm --version # 输出类似 0.39.7若安装失败(常见问题):
- 网络问题:GitHub 脚本无法访问,可改用国内镜像(如腾讯云):bash
curl -o- https://mirrors.cloud.tencent.com/nvm/install.sh | bash - 环境变量未生效:手动添加环境变量到
~/.bashrc或~/.zshrc(根据终端类型选择):bash# 编辑配置文件(以 zsh 为例) vim ~/.zshrc # 粘贴以下内容(安装脚本本应自动添加,若缺失则手动加) export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # 加载 nvm # 生效配置 source ~/.zshrc
2. Windows 系统(nvm-windows)
原生 nvm 不支持 Windows,需使用专门的 nvm-windows(本质是独立工具,命令与原生 nvm 相似)。
步骤 1:卸载已有的 Node(重要)
- 从「控制面板 → 程序和功能」中卸载 Node.js;
- 删除残留文件夹:
C:\Program Files\nodejs、C:\Users\你的用户名\AppData\Roaming\npm。
步骤 2:下载安装 nvm-windows
- 官网下载:nvm-windows Releases,选择最新版的
nvm-setup.exe; - 双击安装,注意两点:
- 安装路径建议默认(如
C:\Users\你的用户名\AppData\Roaming\nvm),避免中文/空格; - 后续 Node 的安装路径会自动关联(无需手动设置)。
- 安装路径建议默认(如
步骤 3:验证安装
打开 新的命令提示符/PowerShell,执行:
nvm version # 输出类似 1.1.11三、nvm 核心命令(通用)
以下命令在 macOS/Linux(原生 nvm)和 Windows(nvm-windows)中基本通用,个别差异会标注。
| 命令 | 功能说明 | 示例 |
|---|---|---|
nvm ls-remote | 列出远程所有可安装的 Node 版本(macOS/Linux);Windows 用 nvm list available | nvm ls-remote # 查看所有版本 |
nvm install <版本号> | 安装指定 Node 版本(可指定大版本,如 14、20) | nvm install 18.17.0 # 安装 18.17.0nvm install 20 # 安装 20.x 最新版 |
nvm ls / nvm list | 列出本地已安装的所有 Node 版本(带 * 的是当前激活版本) | nvm ls # 查看本地版本 |
nvm use <版本号> | 切换到指定 Node 版本(全局生效) | nvm use 18.17.0 # 切换到 18.17.0 |
nvm alias default <版本号> | 设置默认 Node 版本(重启终端后生效) | nvm alias default 18.17.0 # 默认用 18.17.0 |
nvm uninstall <版本号> | 卸载指定 Node 版本 | nvm uninstall 16.20.0 # 卸载 16.20.0 |
nvm current | 查看当前激活的 Node 版本 | nvm current # 输出 v18.17.0 |
关键命令实战示例
安装并切换 Node 18 版本:
bash# 安装 Node 18.x 最新版 nvm install 18 # 切换到 18 版本 nvm use 18 # 验证 Node/npm 版本 node -v # 输出 v18.x.x npm -v # 输出对应 npm 版本(如 9.x.x)为项目指定 Node 版本(局部生效): 在项目根目录创建
.nvmrc文件,写入目标版本:bash# 项目根目录执行(创建 .nvmrc 文件) echo "16.20.0" > .nvmrc # 进入项目目录后,执行以下命令自动切换到 .nvmrc 指定的版本 nvm use(团队协作时,其他人进入项目执行
nvm use即可自动适配版本,避免冲突)
四、优化配置:加速 Node 安装(国内镜像)
默认从 Node 官网下载版本,国内速度较慢,可配置 淘宝镜像 加速:
1. macOS/Linux(原生 nvm)
编辑 ~/.bashrc 或 ~/.zshrc,添加以下内容:
# nvm 淘宝镜像配置
export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node
export NVM_NPM_MIRROR=https://npmmirror.com/mirrors/npm生效配置:source ~/.zshrc(或对应文件)。
2. Windows(nvm-windows)
打开 nvm 安装目录下的 settings.txt 文件,添加:
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/保存后,后续安装 Node 会自动走淘宝镜像,速度大幅提升。
五、常见问题与解决方案
1. 执行 nvm use 后,node -v 仍显示旧版本(Windows)
- 原因:命令提示符/PowerShell 未以 管理员身份 运行,无权限修改环境变量;
- 解决:关闭当前终端,右键打开「管理员模式」的命令提示符,重新执行
nvm use <版本号>。
2. 安装 Node 后,npm 命令提示「找不到」
- 原因:Node 版本安装不完整,或镜像配置错误;
- 解决:
- 卸载该版本:
nvm uninstall <版本号>; - 确认镜像配置正确(参考步骤四);
- 重新安装:
nvm install <版本号>。
- 卸载该版本:
3. macOS 下 nvm use 切换版本后,重启终端失效
- 原因:未设置「默认版本」,终端重启后会恢复初始状态;
- 解决:执行
nvm alias default <版本号>,设置默认版本。
六、nvm 与 npm 包管理的关系
- nvm 管理 Node 版本:不同 Node 版本会自带对应的 npm 版本(如 Node 18 带 npm 9,Node 20 带 npm 10);
- npm 管理 项目依赖包:每个 Node 版本下的 npm 包是独立的(安装在
~/.nvm/versions/node/<版本号>/lib/node_modules),切换 Node 版本后,npm 包也会自动切换,避免依赖冲突。
总结
nvm 是解决 Node 版本冲突的「神器」,核心优势是 轻量、灵活、无侵入。无论是个人开发多项目,还是团队协作统一环境,都能大幅提升效率。
关键是记住:
- 安装时区分系统(Windows 用 nvm-windows);
- 常用命令:
install(安装)、use(切换)、ls(查看)、alias default(设默认); - 国内用户必配淘宝镜像,加速安装。