nvm-windows 安装与多版本 Node 切换指南
老项目锁定 Node 12、新项目要求 Node 20,一台 Windows 机器上两个项目怎么共存?答案是用 NVM for Windows——微软与谷歌推荐的 Windows 版 Node 版本管理器,一条命令装版本、一条命令切版本,不用再反复卸载重装。本文从安装前清理讲到命令速查,照着做即可。
先认清:nvm-windows 不是 Linux 的 nvm
这是新手最容易踩的坑。网上说的 nvm 通常指 Linux/macOS 上由 shell 脚本实现的 Node Version Manager,Windows 原生环境跑不了。Windows 上用的是独立项目 NVM for Windows(官方仓库在 GitHub,官网为 nvm-windows.com),内部实现完全不同,只共享命令思路。在 Windows 上搜教程,看清是「NVM for Windows」再照做,别照着 curl -o- ... nvm.sh 那套操作。
安装前:彻底清理旧版 Node
带残留的旧 Node 会造成「node -v 显示的版本飘忽不定」的经典问题,先按清单清理:
- 「设置 → 应用」卸载所有 Node.js 条目。
- 删除安装目录(默认
C:\Program Files\nodejs),残留目录手动删掉。 - 视需要清理 npm 全局目录(默认
C:\Users\<用户名>\AppData\Roaming\npm)与缓存目录。 - 在「环境变量」中删除所有 Node.js 相关 PATH 条目(如
C:\Program Files\nodejs、...\npm)。 - 重开命令行执行
node -v,提示「不是内部或外部命令」即表示清理干净。
建议在「设置 → 开发者选项」中开启开发人员模式,可减少后续创建符号链接时的权限报错。
官方下载与安装
- 到 NVM for Windows 官方仓库的 Releases 页面下载
nvm-setup.exe(或从官网 nvm-windows.com 进入下载)。 - 运行安装向导,一路默认即可。安装包版本号(如 1.1.x 或 2.x)只代表 NVM 工具自身版本,与 Node 版本无关。
- 安装完成后重开命令行执行
nvm version,能输出版本号即安装成功。
注意 NVM 的下载来源只认官方仓库与官网,不要用第三方打包站提供的版本。
常用命令速查
| 命令 | 作用 | |------|------| | nvm list / nvm ls | 查看已安装及当前使用的 Node 版本 | | nvm install 20 | 安装指定主版本的 Node(可 nvm install 20.11.1 指定精确版本) | | nvm use 20 | 切换当前使用的版本 | | nvm uninstall 18 | 卸载某版本 | | nvm list available | 查看可安装的远程版本列表 |
切换版本后执行的 node -v、npm -v 即为新版本。全局安装的 npm 包按版本隔离,切换后如需使用需在对应版本下重新安装。
按项目自动切换版本
NVM for Windows 新版支持「按目录固定版本」:在项目根目录执行固定命令后,进入该目录会自动使用指定 Node 版本,离开时切回默认,不用每次手动 nvm use。具体命令以你安装版本的官方文档为准(不同版本写法略有差异,官方 README 里有明确说明)。
这一特性对维护多个历史项目特别有用:每个项目锁一个 Node 版本,互相不干扰,也不必再担心 node-sass 之类老依赖在高版本 Node 下编译报错。
常见问题
nvm use报权限/找不到符号链接:确认旧 Node 已彻底清理(重点看 PATH 残留)、以管理员身份打开终端、已开启开发人员模式。- 切换后
node -v没变化:多半是 PATH 里残留了旧 Node 路径,按上文清理清单复查。 - 安装版本失败:确认网络可访问官方 Node 镜像,企业网络可配置代理后重试。
- 与前几个项目的工具链冲突:检查项目根是否已有版本固定配置,以及该版本的固定命令是否确实生效。
安装 LTS 版本与镜像配置
新手建议优先装 LTS(长期支持)版本:nvm install --lts 直接安装当前 LTS,nvm ls 里带 LTS 标记的为主流使用版本。生产项目、团队协作环境统一用 LTS 最为稳妥;只有需要体验新特性时才装 Current 版本,避免在正式项目里踩到未稳定特性。
国内网络环境下载 Node 较慢时,可检查 NVM 是否支持配置镜像源(NVM for Windows 的 settings.txt 支持自定义 Node 下载镜像与 npm 镜像地址)。设置 npm 镜像更常见:在使用的 Node 版本下执行 npm config set registry https://registry.npmmirror.com,之后安装依赖速度明显提升。注意镜像配置按版本生效,切换版本后如提示找不到全局包,重新执行一次即可。是否使用镜像以你对网络环境的实际需求和官方文档说明为准。
最后提示一个规划层面的建议:NVM 管理的是 Node 解释器版本,与项目里的 package.json、锁文件配合使用时,应让项目团队约定统一的 Node 版本并把固定配置提交进仓库。这样新成员克隆项目后按固定配置一键切版本,避免「我本机能跑、换台机器就报错」的经典环境问题,也省去逐个排查版本的沟通成本。
装完做这几件确认
- [ ]
nvm version正常输出,NVM 工具可用 - [ ]
nvm install装好了项目需要的版本,nvm list能看到 - [ ]
nvm use切换后node -v/npm -v随之变化 - [ ] 项目按目录自动切换版本已生效
- [ ] 全局工具(如 yarn、pnpm)已在所需版本下重新安装
NVM for Windows 解决的是「版本共存」,不是「环境保障」;配合官方 LTS 版本策略使用效果更佳。相关阅读:[Node.js LTS 还是 Current](nodejs-lts-or-current.html)、[Git for Windows 安装指南](git-for-windows-install-guide.html)。