Mac + nvm:程序员必须掌握的 Node 版本管理神技

0 阅读4分钟

从 Windows 平滑过渡到 Mac,第一件事就是配置开发环境。

在 Windows 时我就习惯了用 nvm 管理 Node.js 版本,来到 Mac 后发现很多人居然还在用 brew install node 装一个版本死磕,或者手动卸载重装...太折腾了!

其实 Mac 上 nvm 用起来更丝滑。今天把这套 Mac M4(Apple Silicon)标准 Node 多版本管理方案 分享给大家,让 Windows 用户无缝切换,一步到位告别版本混乱。


一、为什么需要 nvm?

想象一下这些场景:

场景 1:老项目用的是 Node 14,新项目要求 Node 20,你怎么同时开发?

场景 2:全局安装了一个版本的 Node,结果某个依赖包死活不兼容,想降级却发现不知道怎么卸载?

场景 3:团队成员用不同 Node 版本,CI 环境又是另一个版本,偶现的 bug 真让人头秃?

nvm 就是来救你的:

多版本共存:想装几个装几个

秒级切换:一条命令搞定

项目隔离:不同项目自动用不同版本

零侵入:不污染系统环境


二、安装前准备

确保你已经安装了 Homebrew。在终端执行:

brew --version

如果输出了版本号,恭喜你可以继续了。如果没有,请先安装 Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

三、通过 Homebrew 安装 nvm

第一步:安装 nvm

brew install nvm

等待安装完成...

第二步:创建 nvm 目录(重要!)

这个目录用来存放不同版本的 Node.js:

mkdir -p ~/.nvm

第三步:配置 Shell 环境

Mac M4 默认使用 zsh,我们需要编辑 ~/.zshrc 文件:

nano ~/.zshrc

在文件末尾添加以下内容(复制粘贴即可):

# NVM 配置
export NVM_DIR="$HOME/.nvm"
[ -s "$(brew --prefix nvm)/nvm.sh" ] && \. "$(brew --prefix nvm)/nvm.sh"
[ -s "$(brew --prefix nvm)/etc/bash_completion.d/nvm" ] && \. "$(brew --prefix nvm)/etc/bash_completion.d/nvm"

保存后按 Ctrl + O,回车确认,然后 Ctrl + X 退出。

最后让配置生效:

source ~/.zshrc

第四步:验证安装

nvm -v

如果输出了版本号(比如 0.40.0),说明安装成功!


四、安装 Node.js 版本

查看所有可用版本

nvm ls-remote

输出会很长,从最早的版本到最新的都有...

只看 LTS 版本(推荐)

LTS(Long Term Support)是长期支持版本,稳定可靠:

nvm ls-remote --lts

安装最新 LTS 版本

nvm install --lts

安装指定版本

比如安装 Node 18、20、22 三个主流版本:

nvm install 18
nvm install 20
nvm install 22

或者安装精确版本:

nvm install 20.11.1

推荐策略:安装三个版本覆盖大部分场景

  • Node 18:维护老项目
  • Node 20:主流稳定开发
  • Node 22:新项目尝鲜

五、查看和切换版本

查看已安装的版本

nvm ls

示例输出:

->      v20.11.1
        v18.19.0
        v22.0.0
default -> 20
system

箭头 -> 表示当前正在使用的版本。

切换版本

临时切换(当前终端有效):

nvm use 18

切换到最新 LTS:

nvm use --lts

设置默认版本

这样每次打开新终端都会自动使用这个版本:

nvm alias default 20

查看当前版本

node -v

或者:

nvm current


六、项目级自动切换(高级技巧)

这是我最喜欢的功能!

在项目根目录创建 .nvmrc 文件:

echo "24.13.1" > .nvmrc

以后每次进入这个项目,只需要执行:

nvm use

就会自动切换到 Node 20!

团队协作神器:把 .nvmrc 提交到 Git,团队成员 clone 项目后执行 nvm use,保证大家 Node 版本一致!


七、卸载 Node 版本

比如要卸载 Node 18:

nvm uninstall 18

或者卸载精确版本:

nvm uninstall 18.19.0

八、Apple Silicon(M4)特别说明

M4 芯片是 ARM 架构,不用担心!nvm 会自动识别并安装 darwin-arm64 版本。

验证一下:

node -p process.arch

应该输出:

arm64

不需要 Rosetta 转译,原生性能满血运行!


九、避坑指南(非常重要!)

❌ 不要混用包管理器

如果你用了 nvm,就不要再执行

brew install node

这会导致冲突!检查一下你的 Node 来自哪里:

which node

正确输出应该是:

~/.nvm/versions/node/v20.11.1/bin/node

错误输出(说明混用了):

/opt/homebrew/bin/node

如果发现混用了,卸载 brew 安装的版本:

brew uninstall node

✅ 推荐做法

只用 nvm 管理 Node,Homebrew 只用来安装 nvm。


十、常用命令速查表

功能命令
查看所有可安装版本nvm ls-remote
只看 LTS 版本nvm ls-remote --lts
安装最新 LTSnvm install --lts
安装指定版本nvm install 20
查看已安装版本nvm ls
切换版本nvm use 20
设置默认版本nvm alias default 20
卸载版本nvm uninstall 18
查看当前版本node -vnvm current

十一、完整配置示例

一套完整的配置流程,复制粘贴即可:

# 1. 安装 nvm
brew install nvm

# 2. 创建目录
mkdir -p ~/.nvm

# 3. 配置环境(手动编辑 ~/.zshrc,添加前文提到的配置)
# 然后执行:
source ~/.zshrc

# 4. 安装三个常用版本
nvm install 18
nvm install 20
nvm install 22

# 5. 设置默认版本
nvm alias default 20

# 6. 验证
node -v
nvm ls

十二、总结

配置完成后的结构是这样的:

Mac M4
  └─ Homebrew
       └─ nvm
            ├─ Node 18(老项目)
            ├─ Node 20(默认,主力开发)
            └─ Node 22(新项目)

这套方案的优势

清晰隔离:每个 Node 版本独立管理

随时切换:秒级响应,无感知切换

团队协作.nvmrc 保证版本一致

原生支持:M4 芯片 ARM64 完美运行

可逆操作:随时卸载,不留痕迹

以后再也不会因为 Node 版本问题浪费时间了。


如果你觉得这篇文章有帮助,欢迎关注公众号 FishTech Notes,一块交流使用心得!