一、卸载现有 Node.js(避免版本冲突)
在安装 Node Version Manager (NVM) 前,必须彻底卸载电脑中已有的 Node.js(若从未安装可跳过此步骤),否则可能导致 NVM 管理失效或版本冲突问题。
1. Windows 系统卸载流程
步骤 1:通过控制面板卸载 Node.js
- 按下
Win + R
组合键打开运行窗口 - 输入
control
并回车打开「控制面板」 - 导航至「程序」→「程序和功能」
- 在程序列表中找到所有 Node.js 相关条目(可能有多个版本)
- 对每个 Node.js 条目右键选择「卸载」,按照向导完成卸载(此过程可能需要1-2分钟)
步骤 2:手动删除残留文件(关键步骤)
Windows 卸载程序通常不会完全清除所有文件,必须手动删除以下路径中的残留:
主安装目录:
- 默认路径:
C:\Program Files\nodejs
- 若安装时自定义过路径,需找到对应的安装文件夹
- 默认路径:
用户缓存目录:
- npm 全局包目录:
C:\Users\[你的用户名]\AppData\Roaming\npm
- npm 缓存目录:
C:\Users\[你的用户名]\AppData\Roaming\npm-cache
- npm 全局包目录:
环境变量清理:
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「用户变量」和「系统变量」中检查并删除:
- 单独的
NODE_PATH
变量 Path
变量中所有包含nodejs
或npm
的路径- 任何与
Node.js
相关的变量
- 单独的
注意:AppData 是隐藏文件夹,需在文件资源管理器地址栏直接输入路径,或在「查看」选项卡勾选「隐藏的项目」才能看到。
步骤 3:验证卸载是否彻底
- 打开新的命令提示符(CMD)(重要:必须新开窗口)
- 依次执行以下验证命令:
node -v # 应显示"不是内部或外部命令" npm -v # 应显示"不是内部或外部命令" where node # 应无任何输出
- 若仍有输出,说明卸载不彻底,需重复上述步骤
2. macOS/Linux 系统卸载流程
步骤 1:通过终端彻底删除 Node
打开终端(Terminal),执行以下命令组:
# 1. 删除Node核心文件
sudo rm -rf /usr/local/bin/node
sudo rm -rf /usr/local/bin/npm
sudo rm -rf /usr/local/lib/node_modules
# 2. 删除npm缓存(macOS/Linux通用)
sudo rm -rf ~/.npm
sudo rm -rf ~/.node-gyp
sudo rm -rf /tmp/npm-*
# 3. 检查并删除其他可能安装路径
sudo rm -rf /usr/local/include/node
sudo rm -rf /usr/local/share/man/man1/node.1
步骤 2:清理环境变量配置
编辑shell配置文件(根据你使用的shell类型选择):
# 对于bash用户
sudo nano ~/.bash_profile
# 对于zsh用户
sudo nano ~/.zshrc
# 对于fish用户
sudo nano ~/.config/fish/config.fish
在打开的文件中:
- 查找并删除所有包含
NODE_PATH
、npm
或node
的行 - 保存更改(
Ctrl+O
)并退出(Ctrl+X
) - 使更改立即生效:
source ~/.bash_profile # 或对应的配置文件
步骤 3:验证卸载
执行以下命令验证:
node -v # 应无任何输出
npm -v # 应无任何输出
which node # 应返回"node not found"
额外清理(针对通过brew安装的情况)
如果曾用Homebrew安装Node:
brew uninstall node --force
brew cleanup
rm -rf $(brew --cache)
二、安装 NVM(Node Version Manager)
系统版本差异说明
NVM(Node Version Manager)分为两个主要版本分支:
- Windows 版本:nvm-windows(由社区维护)
- macOS/Linux 版本:官方 nvm
两者在实现机制和安装方式上有显著差异,需要根据操作系统选择对应的安装方法。
2.1 Windows 系统安装 nvm-windows
步骤 1:下载 nvm-windows 安装包
由于官方 NVM 不支持 Windows 系统,Windows 用户需要使用社区维护的替代方案:
- 访问 GitHub 仓库:https://github.com/coreybutler/nvm-windows/releases
- 下载最新稳定版本(建议选择标有"Latest release"的版本)
- 推荐下载文件类型:
- nvm-setup.exe:包含自动配置的安装程序(推荐新手使用)
- nvm-noinstall.zip:免安装版(适合高级用户手动配置)
注意:如果系统已安装Node.js,建议先卸载,避免与nvm管理的版本冲突。
步骤 2:运行安装程序
安装过程注意事项:
- 双击 nvm-setup.exe 启动安装向导
- 同意用户协议(勾选"I accept...")
- 设置安装路径:
- 默认路径:
C:\Users\[用户名]\AppData\Roaming\nvm
- 可修改但建议保持默认(避免权限问题)
- 默认路径:
- 配置Node.js符号链接路径:
- 默认:
C:\Program Files\nodejs
- 此路径将作为nvm切换版本时的统一入口
- 默认:
- 完成安装前建议勾选"Add to PATH"选项
步骤 3:验证安装
安装完成后必须执行以下操作:
- 重新打开命令提示符(CMD/PowerShell)
- 输入验证命令:
成功示例输出:nvm version
1.1.11
- 常见问题排查:
- 如果提示"nvm不是内部命令",请检查是否重启了终端
- 可运行
where nvm
确认是否在PATH中
2.2 macOS/Linux 系统安装 nvm
步骤 1:通过终端安装 nvm
推荐使用官方维护的安装脚本:
方法一:使用curl(推荐)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
方法二:使用wget(当curl不可用时)
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
安装过程说明:
- 脚本会自动将nvm克隆到
~/.nvm
目录 - 会自动尝试配置shell启动文件(.bashrc/.zshrc等)
- 可能需要管理员权限(在命令前加
sudo
)
步骤 2:配置环境变量
当自动配置失败时需要手动操作:
确定使用的shell类型:
echo $SHELL
/bin/bash
→ 编辑.bash_profile
或.bashrc
/bin/zsh
→ 编辑.zshrc
使用nano编辑器修改配置文件(以bash为例):
nano ~/.bash_profile
在文件末尾添加以下内容:
export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # 加载nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # 启用自动补全
使配置立即生效:
source ~/.bash_profile
步骤 3:验证安装
输入以下命令验证:
nvm --version
成功示例输出:
0.39.7
额外验证步骤:
command -v nvm
应返回:
nvm
提示:如果安装后立即验证失败,尝试关闭并重新打开终端窗口。
三、使用 NVM 安装 Node.js
3.1 查看可安装的 Node 版本
在使用 NVM 安装 Node.js 之前,建议先查看官方提供的可用版本列表,这包含以下几个分类:
- CURRENT:最新稳定版
- LTS:长期支持版(推荐生产环境使用)
- OLD STABLE:旧稳定版
- OLD UNSTABLE:旧开发版
执行以下命令查看可用版本:
nvm list available
典型输出示例(不同平台输出格式可能略有差异):
| CURRENT | LTS | OLD STABLE | OLD UNSTABLE |
|--------------|--------------|--------------|--------------|
| 20.5.1 | 18.17.1 | 16.20.2 | 17.9.1 |
| 20.5.0 | 18.17.0 | 16.20.1 | 17.9.0 |
| 19.9.0 | 16.20.0 | 14.21.3 | 15.14.0 |
3.2 安装指定版本的 Node
安装 LTS 版本(推荐)
长期支持版(LTS)是最稳定的版本,适合生产环境使用:
nvm install 18.17.1
安装最新版本
如果需要使用最新特性,可以安装当前最新版本:
nvm install 20.5.1
安装特定版本
为兼容旧项目,可能需要安装特定版本:
nvm install 16.20.2
安装过程中:
- NVM 会自动下载指定版本的 Node.js 二进制包
- 同时安装对应的 npm 版本
- 配置必要的环境变量
- 在本地缓存安装文件以便快速切换
3.3 切换已安装的 Node 版本
当系统中有多个 Node 版本时,可以随时切换:
# 切换到 18.17.1 版本
nvm use 18.17.1
# 切换到 16.20.2 版本
nvm use 16.20.2
注意:
- 切换后,当前终端会话会立即生效
- 新打开的终端会默认使用系统默认版本(可通过
nvm alias default
设置)
3.4 验证安装与切换
切换版本后,建议验证是否成功:
# 验证 Node.js 版本
node -v
# 预期输出示例:v18.17.1
# 验证 npm 版本
npm -v
# 预期输出示例:9.6.7(这是 Node 18 配套的 npm 版本)
# 查看当前使用的 Node 版本路径
which node
# 输出示例:/Users/username/.nvm/versions/node/v18.17.1/bin/node
3.5 其他实用命令
查看已安装版本
nvm ls
设置默认版本
nvm alias default 18.17.1
卸载指定版本
nvm uninstall 16.20.2
四、NVM 常用命令(Windows/macOS/Linux 通用)
命令详解与应用场景
版本管理相关命令
安装与卸载命令
版本切换与配置
系统配置命令
|
---|
进阶使用技巧
版本号通配符:可以使用部分版本号进行安装,如
nvm install 18
会自动安装最新的 18.x 版本版本切换注意事项:
- 切换版本后需要重新安装全局 npm 包
- 某些项目可能需要删除
node_modules
后重新安装依赖
多版本运行测试:
nvm run 12.22.12 app.js nvm run 14.21.3 app.js nvm run 16.20.2 app.js
可以在不切换全局版本的情况下测试代码在不同 Node 版本中的运行情况
Windows 特殊说明:
- 安装路径不要包含空格和中文
- 需要以管理员身份运行命令提示符执行安装
- 可能需要手动设置系统环境变量
常见问题解决
命令不生效:关闭终端重新打开,或执行
source ~/.bashrc
(Linux/macOS)安装失败:检查网络连接,或尝试使用淘宝镜像:
NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node nvm install 16
版本切换无效:检查是否在其他终端窗口使用了该版本,关闭所有终端重试
权限问题(Linux/macOS):在命令前加上
sudo
,或修改 NVM 安装目录的权限
五、卸载 NVM
5.1 Windows 系统卸载 nvm-windows 完整流程
步骤 1:通过控制面板标准卸载
- 按下
Win + R
组合键打开运行窗口,输入control
回车打开控制面板 - 进入「程序」→「程序和功能」(Windows 10/11 也可通过设置中的"应用"执行)
- 在程序列表中找到以下条目(按字母顺序排列):
- nvm-windows
- Node.js (如果已通过nvm安装)
- 右键点击选择「卸载」,按照向导完成标准卸载流程
注意:如果遇到"卸载程序正在使用"的提示,请关闭所有命令行窗口和IDE工具
步骤 2:彻底清理残留文件
- 打开文件资源管理器,依次删除以下目录:
- 主安装目录(默认路径):
C:\Users\[你的用户名]\AppData\Roaming\nvm
- Node.js 符号链接目录(如果存在):
C:\Program Files\nodejs
- 主安装目录(默认路径):
- 检查以下位置是否还有残留:
C:\Program Files (x86)\nodejs
C:\ProgramData\nvm
- 当前用户文档目录下的
.nvm
文件夹
步骤 3:完整清理环境变量
- 按下
Win + S
搜索"环境变量",选择「编辑系统环境变量」 - 在「高级」选项卡点击「环境变量」按钮
- 在「用户变量」中检查并删除:
- NVM_HOME
- NVM_SYMLINK
- 在「系统变量」中编辑 PATH 变量,删除以下条目(如果存在):
%NVM_HOME%
%NVM_SYMLINK%
- 任何指向 nvm 或 nodejs 的显式路径
- 点击「确定」保存所有更改
提示:建议重启计算机确保所有变更生效
5.2 macOS/Linux 系统卸载 nvm 完整流程
步骤 1:彻底删除 nvm 安装文件
- 打开终端(Terminal/iTerm2等)
- 执行以下命令删除核心文件:
sudo rm -rf ~/.nvm
- 对于通过 Homebrew 安装的情况,还需执行:
brew uninstall nvm brew cleanup
步骤 2:清理Shell配置文件
确定你使用的shell类型(执行
echo $SHELL
查看):- Bash: ~/.bashrc, ~/.bash_profile
- Zsh: ~/.zshrc
- Fish: ~/.config/fish/config.fish
使用文本编辑器(如nano/vim)打开对应配置文件:
nano ~/.zshrc # 以Zsh为例
查找并删除以下内容块:
export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
保存文件后使变更生效:
source ~/.zshrc # 或对应shell的配置文件
步骤 3:验证卸载结果
完全关闭当前终端窗口
打开新的终端窗口,执行:
nvm --version
预期结果应显示:
zsh: command not found: nvm
检查node是否也被移除:
node -v npm -v
如果这些命令仍有效,说明系统中还存在独立安装的Node.js,需要单独卸载
最后检查安装目录是否已清空:
ls -la ~/.nvm # 应该显示"没有那个文件或目录"
六、可能遇到的问题及解决方案
6.1 问题 1:Windows 下执行 nvm use
提示「exit status 1: Access is denied」
详细原因分析: 该问题通常发生在 Windows 系统中,当 NVM 尝试创建或修改 Node.js 的符号链接时,由于用户权限不足导致操作被拒绝。特别是在 Windows 10/11 系统中,对系统目录的修改需要管理员权限。
完整解决方案:
- 关闭当前的命令提示符窗口
- 在 Windows 搜索栏中输入「cmd」或「PowerShell」
- 右键点击搜索结果中的「命令提示符」或「Windows PowerShell」
- 从右键菜单中选择「以管理员身份运行」
- 在弹出的用户账户控制(UAC)对话框中点击「是」
- 在获得的管理员权限终端中,重新执行命令:
(将 16.14.0 替换为需要的 Node.js 版本号)nvm use 16.14.0
补充说明: 如果问题仍然存在,可能需要检查:
- 系统是否启用了符号链接功能
- 用户是否对目标目录有完全控制权限
- 是否存在杀毒软件拦截了相关操作
6.2 问题 2:macOS/Linux 下执行 nvm
提示「command not found」
详细原因分析: 此问题表明系统无法找到 NVM 命令,通常是由于:
- NVM 未正确安装
- 环境变量未正确配置
- 配置文件未加载
- 使用了错误的 shell 配置文件
完整解决方案:
首先确认 NVM 是否已安装:
ls ~/.nvm
如果目录存在且包含 nvm.sh 文件,则 NVM 已安装。
检查 shell 类型:
echo $SHELL
- 如果显示
/bin/bash
,编辑~/.bash_profile
- 如果显示
/bin/zsh
,编辑~/.zshrc
- 如果显示
确保配置文件包含以下内容:
export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
使配置生效:
source ~/.bash_profile # 或 source ~/.zshrc
验证安装:
nvm --version
如果仍无效:
- 完全关闭终端后重新打开
- 检查其他可能加载的配置文件(如
~/.bashrc
,~/.profile
)
6.3 问题 3:安装 Node 时下载缓慢或失败
详细原因分析: 由于网络限制,从 Node.js 官方服务器下载可能非常缓慢甚至失败,特别是在中国大陆地区。淘宝提供了完整的 Node.js 和 npm 镜像,可以显著提高下载速度。
完整解决方案:
Windows 系统配置:
- 找到 NVM 的安装目录(通常为
C:\Users\<用户名>\AppData\Roaming\nvm
) - 打开
settings.txt
文件(如不存在则创建) - 添加或修改以下内容:
node_mirror: https://npm.taobao.org/mirrors/node/ npm_mirror: https://npm.taobao.org/mirrors/npm/
- 保存文件后,重新尝试安装 Node.js
macOS/Linux 系统配置:
- 打开终端
- 编辑 shell 配置文件:
nano ~/.bash_profile # 或 ~/.zshrc
- 添加以下环境变量:
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
- 保存文件(Ctrl+O,然后 Enter,再 Ctrl+X 退出)
- 使配置生效:
source ~/.bash_profile
- 验证镜像是否生效:
echo $NVM_NODEJS_ORG_MIRROR
备选镜像: 如果淘宝镜像不可用,还可以尝试:
- 华为云镜像:
https://mirrors.huaweicloud.com/nodejs/
- 腾讯云镜像:
https://mirrors.cloud.tencent.com/nodejs/
6.4 问题 4:切换 Node 版本后,全局安装的 npm 包不可用
详细原因分析: NVM 的一个重要特性是它为每个 Node.js 版本维护独立的全局 npm 包空间。这样设计的好处是:
- 避免不同 Node.js 版本间的全局包冲突
- 确保每个 Node.js 版本环境的纯净性
- 方便管理不同项目所需的工具链
完整解决方案:
- 首先切换到目标 Node.js 版本:
nvm use 18.17.1
- 检查当前 npm 版本:
npm -v
- 重新安装所需的全局包。以下是常见全局工具的安装命令:
npm install -g yarn npm install -g typescript npm install -g @vue/cli npm install -g create-react-app npm install -g nodemon
- 验证安装:
yarn --version
优化建议:
- 可以创建一个脚本记录常用全局包,方便切换版本后快速安装:
# global_packages.sh npm install -g yarn typescript @vue/cli create-react-app nodemon
- 使用
nvm alias default
设置默认版本,避免频繁切换:nvm alias default 18.17.1
注意事项:
- 某些 npm 包可能有 Node.js 版本限制
- 建议定期清理不再使用的全局包:
npm list -g --depth=0 # 查看已安装的全局包 npm uninstall -g <package-name> # 卸载特定全局包