迁移 Node.js 版本管理器时,不必先删除 nvm。更稳妥的顺序是:记录环境、安装 fnm、验证新环境,最后再停用 nvm。

先记录现状

nvm ls
node --version
npm list --global --depth=0

最后一条很重要:不同 Node.js 安装拥有独立的全局 npm 包目录,切换管理器不会自动迁移这些包。

安装并配置 fnm

macOS 推荐通过 Homebrew 安装:

brew install fnm

~/.zshrc 中加入:

eval "$(fnm env --use-on-cd --shell zsh)"

验证期间可以保留 ~/.nvm 作为回退来源,但同一个 shell 配置里不要让 nvm 和 fnm 同时反复改写 PATH。可以先注释 nvm 的初始化行,再启用 fnm;需要回退时恢复原配置。

重新加载 shell 后,安装原来使用的 Node.js 版本:

source ~/.zshrc
fnm install 24
fnm default 24
fnm use 24

验证实际路径

fnm current
node --version
command -v node
command -v npm

node 路径应由 fnm 提供,不应再指向 .nvm/versions/node/。确认项目和常用 CLI 都能运行后,再从 ~/.zshrc 删除 NVM_DIRnvm.sh 和 nvm 补全相关配置。

不要急着删除 ~/.nvm。先保留一段时间作为回退来源,确认旧 Node.js 版本和全局工具都已补齐后再清理。

参考:fnm 官方安装与 Shell Setup