1. 为什么每台开发机都应该先装 nvm,而不是直接装 node
很多刚接触前端或后端 Node 生态的朋友,第一件事就是去 nodejs.org 下载最新安装包,一路 next 完成安装。这个流程本身没问题,但一旦你的电脑里同时出现两三个项目,分别依赖不同的 Node 版本时,就会开始痛苦了:老项目跑不起来,新项目又要求 Node 18+,卸载重装还老是提示各种错误。这种时候,nvm(Node Version Manager)就是解决“多版本共存”的标准答案。
nvm 本质上是一个版本管理器,它能让你在同一台机器上安装、切换、管理多个 Node.js 版本。你可以把 nvm 理解成“Node 版的语言切换器”,今天在项目 A 里用 Node 16,明天在项目 B 里切到 Node 22,只需要一条命令。这篇文章我会把 nvm 的下载安装、全局配置、版本切换、常见报错全部讲清楚,覆盖 Windows、macOS、Linux 和 WSL 环境。无论你是刚入门的小白,还是已经被 Node 版本折腾过几次的老手,都能在这里找到可以直接照做的操作。
需要先做一个特别重要的区分:我们常说的 nvm 其实有两大流派。一个叫 nvm-windows,这是专门给 Windows 系统用的,安装方式是下载 exe 或者解压 zip;另一个叫 nvm-sh/nvm,是 Linux 和 macOS 上的官方方案,安装方式是用 curl 或者 wget 拉取脚本。两套工具的安装路径、配置文件、命令细节都略有差异,网上很多教程混着讲,结果把新手绕晕了。所以这篇博文会把两条线拆开,你根据自己系统选对路线就行。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 安装前的选择:到底该装 nvm,还是 node 本身
2.1 两者的核心区别和适用场景
先回答一个很多人心里其实有疑问、但不敢确认的问题:nvm 和 node 是什么关系?最简单的类比是:nvm 是“容器”,node 是“容器里的内容”。nvm 负责管理多个 node 版本,node 才是你真正跑 JavaScript 代码的运行时。装了 nvm 之后,你不要再去官网单独下载 node,而是通过 nvm 来安装。这样做的最大好处是版本切换在命令行一键完成,而且不会污染系统环境变量。
如果你满足下面任意一条,我都建议直接上 nvm:
- 同时维护多个前端 / Node 后端项目,且项目之间依赖的 Node 版本不一致。
- 经常要尝试不同框架的官方 Demo,比如 OpenClaw 这类工具就会明确要求
node >=22.22.3 <23或>=24.15.0 <25,这时候用 nvm 安装精确版本最方便。 - 需要频繁升级 Node 版本,但不想每次升级都手动卸载重装、清理注册表。
- 打包或者部署时经常遇到“本地正常、服务器报错”的问题,想快速切换 Node 版本来验证兼容性。
如果你只是在一台机器上跑一个固定项目,从不换技术栈,那直接装 node 也不是不行。但从长期维护的角度看,nvm 的边际成本几乎为零,早晚都用得上。
2.2 全平台安装方案对比
| 系统 | 推荐工具 | 安装方式 | 配置文件位置 |
|---|---|---|---|
| Windows | nvm-windows (coreybutler/nvm-windows) | exe 安装包 / zip 解压 | %NVM_HOME%\settings.txt |
| macOS | nvm-sh/nvm | curl 脚本 | ~/.zshrc / ~/.bash_profile |
| Linux | nvm-sh/nvm | curl 脚本 | ~/.bashrc |
| WSL | nvm-sh/nvm | curl 脚本(同 Linux) | ~/.bashrc |
注意:千万不要把 nvm-sh/nvm 的安装脚本硬套到 Windows 原生环境上。Windows 没有 bash 执行链,你运行 curl 脚本大概率会失败。反过来,nvm-windows 也不要拿到 Linux 上强行跑,那就是两个不同的产物。
3. Windows 环境:nvm-windows 的完整安装流程
3.1 下载安装包与目录规划
Windows 用户直接去 GitHub 搜 coreybutler/nvm-windows,在 releases 页面下载 nvm-setup.exe 即可。如果网络慢,也可以找国内镜像或者直接下载 zip 解压版。我自己的习惯是下载 zip 版,因为 exe 版装完后经常会遇到安全软件拦截,zip 版解压到一个目录、配置一下环境变量就行,反而更可控。
无论用哪种方式,请提前规划好安装目录。建议装到一个没有空格、没有中文、路径短的位置,比如 D:\nvm。为什么要强调路径?因为 nvm-windows 会把 node 的快捷方式创建到这个目录下的 v版本号 文件夹里,如果你把 nvm 装到了 C:\Program Files\nvm 这种带空格的路径下,后面某些老版本 node 的 npm 脚本可能因为空格解析出问题。直接避开,省心。
node 本身不要单独装。很多人装完 nvm 才发现自己电脑上已经有一个 node,这就造成“nvm list 能看到版本,但命令行输入 node -v 显示的是另一个版本”的混乱局面。正确做法是:先卸载干净已有的 node,再装 nvm。卸载后顺手把 C:\Program Files\nodejs 这个目录手动删掉,同时检查环境变量里是否有 node 的残留路径。
3.2 配置 settings.txt 与国内镜像
安装完成或解压完成后,打开 D:\nvm\settings.txt,里面默认内容大概是这样的:
code复制root: D:\nvm
path: D:\nodejs
arch: 64
proxy: none
root:nvm 自身安装目录。path:当前激活 node 的软链接路径。nvm 会把正在使用的 node 版本映射到这个目录,所以这个目录不需要你手动创建,也不要手动往里面塞东西。arch:默认 64 位,如果是 32 位系统改成 32。proxy:默认 none,在公司内网环境如需代理可以填。
国内用户建议再加一行镜像配置,这样不用每次 nvm install 都走官方源,速度会快很多。目前常见的做法是设置 Node 镜像和 npm 镜像:
code复制node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/
注意:不同版本的 nvm-windows 对镜像配置字段的兼容性略有差异,老版本可能只支持
node_mirror。如果改了之后nvm install报错,就先把镜像配置还原,改用直连下载,也能用。
3.3 安装第一个 Node 版本并验证
配置好之后,打开一个新的 cmd 窗口(注意是新的,不然环境变量不生效),依次执行:
code复制nvm version
nvm install 20.19.4
nvm use 20.19.4
node -v
npm -v
nvm version 如果输出版本号,说明工具本体没问题。nvm install 会从镜像或官网拉取 node 压缩包并解压到 nvm 目录下。nvm use 的作用是创建/更新那个 D:\nodejs 软链接,让 node 命令指向具体版本。最后 node -v 能正常输出版本号,就说明整个链路通了。
这里有个 Windows 下很常见的坑:nvm use 如果提示“cannot run as current user”,说明你当前 cmd 不是管理员权限。nvm-windows 的软链接其实是创建目录符号链接,Windows 对创建符号链接有限制,普通用户没有权限。解决办法是右键“以管理员身份运行” cmd 或终端。
4. macOS / Linux / WSL 环境:nvm-sh 的安装与配置
4.1 使用官方脚本安装
macOS 和 Linux 的 nvm 安装方式基本一致。官方推荐的安装命令是:
code复制curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
如果你本地没有 curl,也可以用 wget:
code复制wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
脚本执行完后,它会在你家目录下克隆一份 nvm 源码到 ~/.nvm,并自动往你的 shell 配置里追加几行加载逻辑。比如 .bashrc 里会出现类似这样的内容:
code复制export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
如果脚本没有自动写入,你可以手动补充到 .bashrc 或 .zshrc 里。然后执行:
code复制source ~/.bashrc
再验证 nvm -v。这一步偶尔会碰到 command not found,原因往往是 shell 配置没有 source 成功。检查一下你当前用的 shell,如果是 zsh,就要改 .zshrc,而不是 .bashrc。在 macOS 上我见过大量教程让用户去改 .bash_profile,结果系统默认已经是 zsh 了,改了根本不起作用。
4.2 WSL 安装要点
WSL 里安装 nvm 和 Linux 原生流程几乎一样,但有几个细节需要额外注意。首先,确认你的 WSL 发行版是 Ubuntu 还是别的系统,以 Ubuntu 为例,先安装构建依赖,因为后面有些 npm 包需要本地编译原生模块:
code复制sudo apt update
sudo apt install build-essential curl
然后按 4.1 的命令安装 nvm。安装完之后不要急着 nvm install latest,先看一下项目实际需求的版本。比如你用的是 OpenClaw,它会提示 node >=22.22.3 <23 或 >=24.15.0 <25,那你就可以装:
code复制nvm install 24.15.0
nvm use 24.15.0
这样你就把 OpenClaw 要求的精确版本装进去了,再用 node -v 验证。
另一个 WSL 独有的坑是:如果你在 Windows 侧也装了 nvm-windows,两个环境各自管理各自的 node,互不干扰。这没问题,但别在 WSL 里试图调用 Windows 侧的 nvm,路径和机制都不一样。正确的心理模型是:WSL 是一个独立 Linux 子系统,把它当成一台单独的 Linux 机器对待。
4.3 默认版本与全局配置
装好 nvm 之后,每次新开终端你可能都希望自动使用某个固定版本,而不是每次手动 nvm use。执行:
code复制nvm alias default 20.19.4
这条命令的意思是:设置默认 node 版本为 20.19.4。以后每次打开终端,nvm 会自动加载这个版本。
如果你不想固定版本,也可以用系统里安装的最新版作为默认:
code复制nvm alias default node
node 在这里是特殊别名,指向当前已安装最新版本。
5. nvm 常用命令与版本切换实战
5.1 高频命令速查表
| 命令 | 作用 |
|---|---|
nvm ls / nvm list |
列出本机已安装的所有 node 版本 |
nvm list available |
列出所有可在线安装的版本(仅 nvm-windows) |
nvm install <version> |
安装指定版本 |
nvm uninstall <version> |
卸载指定版本 |
nvm use <version> |
切换到指定版本 |
nvm alias default <version> |
设置默认版本 |
nvm current |
查看当前正在使用的版本 |
nvm exec <version> node -v |
临时用指定版本运行命令,不切换全局 |
nvm which <version> |
查看指定版本的安装路径 |
这里我想特别提一下 nvm exec。它可以在不切换当前版本的情况下,临时用另一个版本的 node 执行命令。比如当前用 Node 20,但你只想用 Node 18 跑一个测试脚本:
code复制nvm exec 18.20.4 node test.js
这个命令非常适合 CI 脚本和容器构建场景,避免在脚本里频繁切换默认版本导致副作用。
5.2 版本切换的底层原理
要真正理解 nvm 为什么好用,需要明白它切换版本的底层原理。在类 Unix 系统上,nvm 的做法是修改 PATH 环境变量。~/.nvm/versions/node/v20.19.4/bin 会被插入到 PATH 最前面,这样 shell 在解析 node 命令时,首先找到的就是当前版本对应的可执行文件。
Windows 上 nvm-windows 的做法则略有不同,它通过创建目录符号链接,把 D:\nodejs 这个路径指到某个版本目录。你的 PATH 里只需要配置 D:\nodejs,切版本时 nvm 把链接换一下,指向的真实目录就变了。
理解这个原理之后,你就能明白两个常见故障的根源:
- 为什么有时切完版本后,新开的终端却还是旧版本?因为 nvm 修改的是当前 shell 的环境变量,已打开的终端不会自动刷新。你需要在切换版本后新开一个窗口,或者重新
source配置。 - 为什么 IDE 里 node 版本和命令行不一样?因为 IDE 继承的是它启动时的环境变量。你可以在命令行切好版本后,再从命令行把 IDE 启动起来,或者找到 IDE 的设置面板,单独配置 node 路径。
5.3 项目级别 .nvmrc 文件
跨机器协作时,单靠口头约定“大家统一用 Node 18”是不够的。更专业的做法是在项目根目录放一个 .nvmrc 文件,里面只写一行版本号:
code复制20.19.4
然后团队成员执行:
code复制nvm use
nvm 会自动读取 .nvmrc,切换到对应版本。如果当前 nvm 里没装这个版本,它会提示你执行 nvm install。这个机制和 Python 的 .python-version、Java 的 .java-version 类似,保证了项目环境的一致性。
对团队来说,.nvmrc 是成本极低但收益极高的约定。我见过很多线上 bug,最后排查下来就是某位同事本地 Node 版本高一个小版本,某些行为不一致导致的。有了 .nvmrc,至少能消除这个变量。
6. Node.js 安装后的全局配置与 npm 镜像设置
6.1 全局目录和缓存目录
Node 装完后,第一件事不是急着写代码,而是把 npm 的全局目录、缓存目录配置顺手搞定。如果不配置,默认全局安装的包会写到 node 安装目录下。这带来两个问题:一是以后切换 node 版本时,全局包不会跟着切换,可能“失联”;二是在 Windows 上,全局包写入 Program Files 目录经常触发权限弹窗,很烦。
建议在用户目录下创建专门的前缀目录,比如:
code复制npm config set prefix "D:\npm-global"
npm config set cache "D:\npm-cache"
macOS / Linux 用户可以用默认路径,也可以设置到 ~/.npm-global:
code复制npm config set prefix "~/.npm-global"
npm config set cache "~/.npm-cache"
设置完之后,记得把全局 bin 目录加入系统 PATH。Windows 上把 D:\npm-global 加进 PATH;macOS/Linux 上把 ~/.npm-global/bin 加进 PATH,否则全局安装的命令会提示找不到。
6.2 设置 npm 镜像源
国内网络环境大家都懂,不换镜像源,npm install 一个稍微大点的依赖可能卡到天荒地老。推荐用 npmmirror 镜像:
code复制npm config set registry https://registry.npmmirror.com
执行后可以用 npm config get registry 验证。如果某天你要发布 npm 包,再切回官方源:
code复制npm config set registry https://registry.npmjs.org
提示:设置镜像源要区分用户级和项目级。
npm config set registry xxx默认写的是用户级配置,对当前用户的所有项目生效。这通常是你想要的效果。如果某个特定项目需要不同的源,可以在项目目录下建一个.npmrc文件,里面写独立的 registry 配置,项目级配置优先级更高。
6.3 常用全局工具安装示例
全局包推荐安装一些高频开发工具,比如:
code复制npm install -g yarn
npm install -g pnpm
npm install -g typescript
npm install -g ts-node
npm install -g nodemon
但我要提醒一句:全局包不要装太多。尤其是工具链相关的包,尽可能降到项目依赖里。因为全局包和 Node 版本绑定,切版本时如果临时需要用某个全局包,可能会因为没在新版本里重新安装而报错。如果你非要全局装,建议只在长期稳定使用的默认版本里安装,其他版本靠 npx 临时调用。npx 是 npm 自带的执行工具,可以临时使用某个包而不安装到全局,比如 npx create-react-app my-app,它就会自动下载并执行,用完即走。
7. 版本切换与多版本共存的典型场景
7.1 老项目用旧版,新项目用新版
这是最典型的场景。假设你本地有个老项目锁死在 Node 16,另一个新项目要求 Node 20。传统做法是装一个版本,跑另一个项目时各种兼容性问题。nvm 的做法是:
code复制nvm install 16.20.2
nvm install 20.19.4
两个版本都装好,跑老项目时:
code复制cd old-project
nvm use 16.20.2
npm start
跑新项目时:
code复制cd new-project
nvm use 20.19.4
npm run dev
切换后,npm 也会自动跟着变,因为这个版本的 npm 本来就在对应 node 目录下。你在 shell 里执行 npm -v 会看到它和 node 版本已经匹配。所以“为什么 npm 和 node 版本不匹配”这类问题的根源,几乎都是切换 node 版本后没有使用 nvm 自带的 npm,而是不小心用了别的全局 npm。
7.2 为特定工具安装精确版本
有些新工具比较“挑剔”,会要求非常精确的 Node 版本区间。比如某工具要求 node >=22.22.3 <23,这个区间就要求你必须装 22.x 的最新 patch 版本,或者直接装 22.22.3 本身。使用 nvm 安装精确版本很简单:
code复制nvm install 22.22.3
nvm use 22.22.3
如果是 Windows 的 nvm-windows,你可能需要先 nvm list available 确认该版本是否在列表中。有时 list 里找不到刚发布的版本,是因为本地版本列表缓存更新不及时,可以执行 nvm install latest 先装个最新版刷新缓存,或者直接从官方镜像地址手动下载对应压缩包解压到 nvm 目录。不过这个操作概率很低,日常按 nvm install 版本号 就能满足需求。
7.3 验证切换是否生效
切换完版本后,我强烈建议执行三连验证:
code复制nvm current
node -v
which node # Windows 上是 where node
nvm current 显示的是 nvm 认为当前应该生效的版本;node -v 显示的是 shell 实际解析到的版本;which node 显示的是 node 可执行文件路径。如果 nvm current 是 20.19.4,但 node -v 是 22.x,说明 PATH 里有其他 node 干扰了;如果 which node 指向的不是 nvm 目录,说明环境变量顺序有问题。
这种验证习惯能帮你省下大量排查时间。很多人在命令行里直接 node -v 看着版本没问题就开跑,结果 IDE 里还是旧版本,问题就出在没做路径验证。
8. 常见问题与排查技巧实录
8.1 nvm 报错“v24.19.0 is not yet released or is not available”
这个报错的完整形态类似:
code复制error installing 24.19.0: node.js v24.19.0 is not yet released or is not available
出现这个报错有三种最常见原因。第一种,版本号本身打错了,比如想装 24.19.0,但实际发布的最新 24.x 只到 24.18.2,那 nvm 自然找不到。第二种,版本号确实存在,但在当前 nvm 的镜像源或者缓存列表里还没有同步,国内镜像经常比官方源慢一点。第三种,你用的是 nvm-windows,它的“available 列表”更新机制比较滞后,列表里看不到新版本。
排查步骤:
code复制# Windows 上先刷新可用版本列表
nvm list available
# 查看远端是否真的发布了这个版本
# 如果是镜像源,可以打开 npmmirror node mirrors 页面看版本目录
如果确认版本存在但 nvm 装不了,最简单的临时方案是用 nvm install latest 装当前最新稳定版,或者选一个比报错版本低一点的版本。如果是项目明确锁定版本,那就换官方源安装试试,或者手动下载对应版本的 tar.gz/zip,解压到 nvm 的 versions 目录下,目录名和版本号保持一致,再用 nvm ls 就能看到。
8.2 Windows 卸载 node 报错 2053
“卸载不了报错2053”这个问题我遇到过很多次,尤其是从官方 exe 安装包方式安装的 node,在系统和软件版本混杂的情况下特别容易触发。错误码 2053 通常和 Windows Installer 的权限或系统残留有关。最直接的解决思路是:
- 先通过“控制面板 -> 程序和功能”尝试正常卸载。
- 如果失败,用管理员权限运行 Windows 自带的
msiexec命令,强制卸载:code复制
产品代码可以从注册表的msiexec /x {你的产品代码} /qnHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall下找到 Node.js 对应的项。 - 如果还不行,用第三方卸载工具清理注册表残留和目录残留。
- 清理完成后,删除
C:\Program Files\nodejs、%APPDATA%\npm、%APPDATA%\npm-cache等目录。 - 打开注册表编辑器,搜索并删除与 nodejs 相关的无效项。
强烈建议:在 Windows 上处理 node 安装/卸载问题时,先备份注册表或者创建系统还原点。这个操作有风险,但只要你只删 nodejs 相关项,一般不会有别的问题。我见过有人图省事直接全盘清理“node”关键词,结果把其他软件的注册表也删了,后面系统各种异常。
其实,装上 nvm-windows 之后,你就不再需要手动卸载 node 了,直接用 nvm uninstall <version> 就能干净地移除某个版本。这也是我推荐 nvm 的另一个原因:卸载和升级都变得可控,不再依赖 Windows Installer 的“玄学”。
8.3 编辑器提示“Node.js not found,please save and restart”
这个提示我经常在 VSCode 或一些 IDE 插件里看到。它的大意是:编辑器进程找不到 node 可执行文件。常见于你本机装了 nvm,但 IDE 是从桌面图标启动的,IDE 没有继承你 shell 里的 nvm 环境变量。排查思路如下:
- 先确认命令行里
which node或where node能输出路径。 - 在 IDE 设置里找到“Node Path”或“Node: Path”之类的配置项,手动填上 node 的完整绝对路径。
- 如果是通过命令行启动的 IDE,切好 node 版本后再启动,一般就能正常识别。
- 如果还是不行,把 IDE 重启一遍,有些插件只在启动时读取一次环境变量。
8.4 nvm use 切换版本后 npm 丢失
有时候 nvm use 20.19.4 成功,但执行 npm -v 提示找不到 npm。这个问题的原因通常是你手动设置过 npm config set prefix,把 npm 全局目录指到了别的地方,而那个目录下没有 npm 的 bin 文件。或者你曾经手动安装过独立的 npm 包到某个路径,导致 PATH 里的 npm 不是当前 node 版本自带的 npm。
验证方法:直接看 node 目录下有没有 npm:
code复制ls $(which node)/../lib/node_modules/npm/bin/npm-cli.js
# Windows 上直接打开 D:\nvm\v20.19.4\node_modules\npm\bin\npm-cli.js
如果有,说明 npm 文件存在,问题多半出在 PATH 顺序。把 nvm 管理的 node 目录放到 PATH 最前面,而不是把某个自定义目录置前。如果没有,说明这个版本的 node 压缩包里本身就缺 npm,重新 nvm uninstall 后再 nvm install 一次。
8.5 WSL 和 Windows 双环境 node 版本不一致
很多开发者 Windows 上装了 nvm-windows,WSL 里也装了 nvm-sh,两边各自维护一套 node。它们互不干扰,但因为 PATH 不同,同一个项目在两个环境里跑出来的效果可能不一样。如果你要我给一个建议,我建议对 WSL 项目一律在 WSL 内安装和管理 node,不要去 Windows 侧执行 npx 或 node 命令。WSL 和 Windows 之间的文件系统可以互相访问,但进程环境是独立的,混着用几乎必然出问题。
9. 从 nvm 到 Node 打包发布:一个容易忽略的细节
9.1 开发环境有 node,不代表生产环境有 node
很多新手会有一个误解:我在开发机上用 nvm 装好了 node,项目跑得好好的,那我把整个项目文件夹复制到另一台电脑上,是不是也能跑?答案是否定的。nvm 只是开发环境的版本管理器,它不会把你的 node 运行时打进项目发布包里。如果你用纯 Node.js 写了一个命令行工具或服务,要交付给没有安装 node 的电脑运行,你有两个基本选择:
- 在目标机器上安装 node,再执行你的 js 文件。
- 使用打包工具把你的 Node 应用打包成独立的可执行文件,比如用
pkg或nexe打包成 exe、用 Electron 把桌面应用打成安装包。
我见过有人问“打包到没有 node 的电脑”时,第一反应是“把 nvm 一起拷过去行不行”。技术上可以,但这非常不优雅,相当于给每台目标机器部署一套开发环境,体量大、维护难。更合理的路径是用专业的打包工具。这里点到为止,等你真正走到发布环节时,再针对具体打包工具做深入学习。
9.2 用 nvm 验证不同 Node 版本的兼容性
nvm 还有一个很实用的场景:做兼容性测试。当你开发了一个 npm 包,想确认它在 Node 16、18、20 下都能正常跑,直接循环切版本跑测试:
code复制nvm use 16.20.2 && npm test
nvm use 18.20.8 && npm test
nvm use 20.19.4 && npm test
这在 CI 环境里也可以做,但本地先跑一轮能快速暴露问题。尤其是遇到某个 API 在低版本不存在、高版本又废弃的情况,靠这种手动切版本的方式排查,比反复改 CI 配置快得多。
10. 卸载 nvm 与清理环境
10.1 Windows 卸载 nvm-windows
想彻底卸载,流程分三步。第一步,用 nvm list 查看所有已安装版本,逐个 nvm uninstall <version>。第二步,退出所有终端,卸载 nvm-windows 程序,或者直接删除解压目录。第三步,手动清理环境变量里关于 NVM_HOME、NVM_SYMLINK 的项,删除 D:\nodejs 快捷链接目录。
10.2 macOS / Linux 卸载 nvm-sh
先清理所有 node 版本:nvm uninstall <version> 逐个删除,或者直接删整个 ~/.nvm 目录。然后从 .bashrc / .zshrc 中移除 nvm 初始化代码。最后删掉你手动设置的全局 npm 目录即可。整个过程一分钟内就能完成,不会像 Windows 那样留下注册表残留。
最后再分享一点我的使用习惯
nvm 这个工具我用了好几年,踩过的坑比写出来的多得多。现在我的工作流基本固定:新项目根目录永远放一个 .nvmrc,团队成员 clone 下来后执行 nvm use 即可对齐环境;任何需要长期使用的全局 CLI 工具只装在默认版本里,其他版本一律用 npx;每次切换版本后,习惯性跑一下 node -v && npm -v 确认环境同步。
如果在安装或使用过程中遇到任何问题,请记得先确认三件事:你装的是哪个 nvm 分支(Windows 还是 Unix)、你的 shell 环境变量是否刷新生效、你的 PATH 里有没有其他 node 残留。这三个问题覆盖了我遇到的九成故障。剩下的,就当是一次调试练习吧。
