彻底卸载Node.js需按安装方式分类清理:nvm用nvm uninstall <version>;Homebrew用brew uninstall node@x加brew cleanup;官方.pkg则需手动删/usr/local/bin/{node,npm,npx}、/usr/local/lib/node_modules等,并清用户缓存~/.npm、~/.node-gyp。

如果您在 Mac 上使用 Node.js 进行前端开发,但发现多个旧版本残留导致命令冲突、全局模块异常或 nvm 切换失效,则很可能是 Node.js 旧版本未被彻底清理。以下是针对不同安装方式的多种清理方法:
一、通过 nvm 管理的 Node.js 版本清理
当 Node.js 由 nvm(Node Version Manager)安装时,旧版本以独立目录形式存于 ~/.nvm/versions/node/ 中,可安全卸载指定版本而不影响其他版本或系统路径。
1、打开终端,执行命令列出所有已安装版本:
nvmls
2、确认需清理的旧版本号(例如 v16.20.2、v18.19.0),执行卸载命令:
nvm uninstall v16.20.2
立即学习“前端免费学习笔记(深入)”;
3、若需批量清理除当前使用版本外的所有旧版,可结合 shell 命令筛选:
for version in $(nvm ls --no-alias | grep -E '^[0-9]' | grep -v $(nvm current)); do nvm uninstall $version; done
二、通过 Homebrew 安装的 Node.js 旧版本清理
Homebrew 会为不同 Node.js 版本创建独立 formula(如 node@18、node@20),旧版本保留在 /usr/local/Cellar/ 下,需手动卸载并清理缓存以释放空间。
1、查看已安装的 Node 相关 formula:
brew list | grep -E '^node(@[0-9]+)?$'
2、卸载指定旧版本(例如 node@16):
brew uninstall node@16
3、执行深度清理,删除所有未被当前 formula 引用的旧版缓存与冗余依赖:
brew cleanup --prune=all
三、通过官方 .pkg 安装包残留的彻底清除
若曾使用官网下载的 .pkg 安装包安装 Node.js,其文件分散在系统级路径中,仅卸载程序本身无法清除全部残留,必须手动删除二进制、手册页、模块目录及用户配置。
1、删除主可执行文件及 npm/npx:
sudo rm -rf /usr/local/bin/{node,npm,npx}
2、删除全局模块与头文件:
sudo rm -rf /usr/local/lib/node_modules
sudo rm -rf /usr/local/include/node
3、删除手册页与 DTrace 文件:
sudo rm -rf /usr/local/share/man/man1/node.1
sudo rm -rf /usr/local/share/man/man1/npm.1
sudo rm -rf /usr/local/lib/dtrace/node.d
4、清理用户级缓存与配置:
rm -rf ~/.npm
rm -rf ~/.node-gyp
rm -rf ~/.npmrc
rm -rf ~/.node_repl_history
四、验证旧版本是否已清除干净
清理操作完成后,需逐项验证是否仍有旧版本痕迹残留,避免 PATH 混淆或命令误调用。重点检查可执行文件路径、环境变量及全局模块注册表。
1、检查当前 node 和 npm 的实际路径:
which node
which npm
2、确认返回路径不包含 /usr/local/bin/ 或 /opt/homebrew/bin/(若非通过 Homebrew 或 nvm 启动)
3、列出所有 node 可执行文件位置:
ls -la /usr/local/bin/node*
4、检查环境变量中是否存在残留路径:
echo $PATH | tr ':' '\n' | grep -E '(node|npm)'
五、清理 Homebrew 缓存中 Node.js 相关旧包
Homebrew 下载的旧版 Node.js 安装包(.tar.gz)默认保留在缓存目录中,长期积累可达数 GB,且可能干扰新版本安装逻辑,需主动清理。
1、预览将被删除的 Node.js 相关缓存(不执行删除):
brew cleanup -n node@18 node@20
2、定向清理特定 Node 版本的旧安装包:
brew cleanup node@18 node@20
3、强制清空整个 Homebrew 缓存(含 Node 所有历史包):
rm -rf ~/Library/Caches/Homebrew/node*@*.tar.gz



















