推荐用 homebrew 安装 nvm 管理多版本 node.js:nvm 安装至 ~/.nvm,无需 sudo,支持 nvm use 切换、.nvmrc 自动匹配及默认版本设置;homebrew 直装 node@x 仅限单版本激活,切换需 unlink/link,易冲突且不支持自动识别。
直接用 homebrew 安装多版本 node.js 并原生支持快速切换,其实并不推荐——homebrew 本身不提供“一键切换”能力,它更适合作为单版本安装工具。真正能让你在 macos 上自由安装多个版本、按需快速切换、项目自动匹配的,是搭配 nvm 或 n 这类版本管理器。下面分两种主流方案讲清楚,重点说清怎么做、为什么这么选:
✅ 推荐方案:用 Homebrew 装 nvm(最稳妥)
nvm 是目前 macOS 上最成熟、权限干净、项目隔离强的 Node 版本管理方案。所有版本都装在你自己的 ~/.nvm 目录下,完全不碰系统路径,也不需要 sudo。
-
安装 nvm(用 Homebrew 自动处理依赖和路径)
brew install nvm
-
创建存放目录并写入环境变量(zsh 默认 shell)
mkdir ~/.nvm echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.zshrc echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> ~/.zshrc source ~/.zshrc
-
验证是否生效
nvm --version # 应输出版本号
-
安装多个版本(比如 LTS 和最新稳定版)
nvm install --lts # 安装当前长期支持版(如 v18.x) nvm install 20.12.0 # 安装指定版本 nvm install 16.20.2 # 再装一个老版本备用
-
切换版本(立即生效)
nvm use 16.20.2 # 当前终端切到 16.x nvm use --lts # 切到最新 LTS nvm current # 查看当前生效版本
-
设置默认启动版本(新开终端自动加载)
nvm alias default 18.19.0
-
让项目自动匹配版本(免手动切换)
在项目根目录新建.nvmrc文件,内容只写一行:16.20.2
进入该目录后运行
nvm use(或启用nvm auto插件),就会自动切换。
⚠️ 备选方案:Homebrew 直接装多个 node@X 公式(有限可用)
Homebrew 提供了 node@14、node@16、node@18、node@20 等公式,但不能同时激活多个,必须手动 unlink/link,且每次切换会覆盖 /usr/local/bin/node,不适合日常开发。
-
查看可用版本
Comprehensive Three.js 3D graphics reference下载详细的 Three.js 3D 图形参考,涵盖场景设置、相机、几何体、材质、光照、动画、控制器、加载器、数学工具和调试。
brew search node@
-
安装指定版本(例如)
brew install node@18
-
手动切换(危险:会覆盖当前 node 命令)
brew unlink node brew link --force node@18
-
注意事项
- 每次
brew link只能有一个版本生效 - 不支持
.nvmrc自动识别 - 全局 npm 包可能因路径变动失效
- 卸载时容易残留符号链接
- 每次
? 补充:统一 npm 全局安装路径(避免权限报错)
无论用 nvm 还是 Homebrew,npm 全局安装(如 npm install -g pnpm)常因权限失败。建议统一配到用户目录:
-
创建专属目录
mkdir ~/.npm-global
-
配置 npm 使用该路径
npm config set prefix ~/.npm-global
-
把它加进
PATH(追加到~/.zshrc)echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc source ~/.zshrc
这样装的全局命令(pnpm、vue、eslint 等)就不会再提示 EACCES 或要求 sudo。
不复杂但容易忽略。










