macOS 如何升级 Node.js
macOS 升级 Node.js 推荐 nvm:nvm install node --latest-npm 安装最新版,nvm alias default 设默认;或用 Homebrew 执行 brew upgrade node,或用 n 管理器 sudo n lts。pkg 安装包用户需下载新版覆盖安装。
macOS 上升级 Node 取决于你当初怎么装的:nvm 安装的用 nvm install --lts(或 nvm install node --latest-npm 装最新版);Homebrew 安装的用 brew upgrade node;官网 pkg 安装的下载新 pkg 覆盖。推荐统一迁到 nvm 管理,避免多种安装方式并存导致版本混乱。
先确认当前的安装方式
which node
# ~/.nvm/versions/node/... → nvm 安装
# /opt/homebrew/bin/node → Homebrew 安装(Apple Silicon)
# /usr/local/bin/node → pkg 安装或 Homebrew(Intel)
nvm 方式(推荐)
nvm install --lts # 最新 LTS
nvm install node --latest-npm # 最新 Current 版 + 最新 npm
nvm alias default 'lts/*' # 新终端默认用它
带 --reinstall-packages-from=current 可以把现有全局包迁移到新版本:
nvm install --lts --reinstall-packages-from=current
Homebrew 方式
brew update
brew upgrade node
注意 Homebrew 的 node 公式滚动更新到最新 Current 版;想钉在 LTS 用 brew install node@22 并 brew link --overwrite node@22。
pkg 方式
去 nodejs.org 下载新的 macOS Installer,双击安装即可覆盖旧版。pkg 不管理 npm 全局目录权限,若遇到 EACCES 权限错误,建议改用 nvm 重装而不是对系统目录 chmod。
常见问题(FAQ)
Q:升级后 npm 全局命令找不到了?
nvm 换版本后全局包不共享,需要重装(或用 --reinstall-packages-from 迁移)。如果 which 显示路径正确但命令不存在,多半是这个问题。
Q:Apple Silicon(M 系列)有什么要注意的?
Node 15 起提供原生 arm64 构建,nvm 和 Homebrew 都会装 arm64 版。若必须运行旧的 x64 原生模块,可在 Rosetta 终端里装一份 x64 Node 并行使用。
Q:多种安装方式混在一起了怎么清理?
保留 nvm 管理的那份,删除其他的:brew uninstall node、按官方文档卸载 pkg(删除 /usr/local 下的 node/npm 相关文件),并检查 shell 配置文件中残留的 PATH 修改。