用 NVM 玩转多版本 Node.js:从安装到高阶技巧
·
本文手把手带你在 Windows 上用 NVM 管理多个 Node.js 版本,涵盖安装、镜像配置、常用命令、企业代理与编译依赖、常见故障排查与进阶技巧。比参考文章更细、更全面。
NVM 和 Node.js 是什么,有什么用?
- Node.js:基于 Chrome V8 的 JavaScript 运行时,用来跑脚本、前端构建工具、服务端程序等。
- NVM(Node Version Manager for Windows):在同一台机器上安装、切换、卸载多个 Node.js 版本的工具。
- 为什么需要 NVM
- 不同项目依赖不同 Node 版本(例如老项目用 14,新项目用 20)。
- 隔离每个 Node 版本对应的全局 npm 包,避免冲突。
- 快速测试不同版本兼容性。
安装前准备
- 已安装过 Node.js 的,建议先卸载(控制面板 → 程序和功能 → Node.js → 卸载)。
- 若
C:\Program Files\nodejs下还残留内容,可手动删除(注意先备份你确实需要的文件)。 - 确保你能以管理员身份打开 PowerShell/命令提示符(切换版本时需要创建符号链接)。
安装 NVM(nvm-windows)
- 下载:前往 nvm-windows Releases 下载最新
nvm-setup.zip。 - 安装:解压并运行
nvm-setup.exe,按向导完成安装。- NVM 安装路径(Root):建议使用你自己的用户目录。例如:
C:\Users\用户\AppData\Local\nvm(你给的路径之一,合适)
- Node.js 符号链接目录(Symlink):Node 的“当前版本”将被链接到此目录。可选:
C:\nvm4w\nodejs(你给的路径之一,避免写入 Program Files,可减少权限问题)- 或保留默认
C:\Program Files\nodejs(可能需要管理员权限)
- NVM 安装路径(Root):建议使用你自己的用户目录。例如:
- 完成后新开一个命令行窗口,验证:
nvm version
可选:配置国内镜像(强烈推荐)
建议选择国内镜像源,例如淘宝镜像https://registry.npmmirror.com/
nvm-windows 的配置文件是 settings.txt,位于 NVM 安装目录(例如 C:\Users\用户\AppData\Local\nvm\settings.txt)。打开并添加/修改如下两行以提升下载速度:
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/
保存后重开命令行窗口再执行安装命令。
提示:
- 你也可以使用环境变量(了解即可):
NVM_NODEJS_ORG_MIRROR、NVM_NPM_MIRROR。 nvm list available会从镜像拉取可用版本列表,镜像不稳定时可稍后再试。
安装与切换 Node.js 版本
- 查看可安装版本:
nvm list available
# 或
nvm ls available
- 安装稳定/LTS/指定版本:
# 最新稳定版(Current,有时会更前沿)
nvm install latest
# LTS 通常更适合生产
nvm install lts
# 指定版本与位数(64 通常默认)
nvm install 16.14.0
nvm install 16.14.0 64
- 切换版本并验证:
nvm use 16.14.0
node -v
npm -v
- 设置默认版本(新开终端自动生效):
nvm alias default 16.14.0
- 查看/卸载已安装版本:
nvm list
nvm uninstall 16.14.0
LTS 还是 Current?
- LTS(长期支持):稳定、维护周期长,生产环境优先。
- Current(最新):功能最新,适合尝鲜或本地验证。
- 建议:生产选 LTS;本地可同时装 LTS+Current,按项目切换。
全局 npm 包与包管理器
- 每个 Node 版本都有自己的 npm 全局目录。切换版本后,全局包也随之切换(这正是隔离的价值)。
- 常见做法:在每个项目里用本地依赖,不依赖全局包。
- Node 16.9+ 可启用 Corepack 来管理 Yarn/pnpm 版本:
corepack enable
# 使用项目内声明的包管理器版本(package.json 中的 "packageManager" 字段)
在中国网络环境的实用加速
- npm 源切换(影响包依赖下载,不影响 Node 可执行文件下载):
npm config set registry https://registry.npmmirror.com
- pnpm/yarn 同理可配置镜像源(视所用包管理器而定)。
编译环境与 node-gyp(可选)
部分依赖需要编译(如 node-gyp):
- 安装 VS Build Tools(含 C++ 工具链),例如使用 Winget:
winget install --id Microsoft.VisualStudio.2022.BuildTools --source winget
- 安装完成后,重新打开命令行,确保
node-gyp可以编译(通常在首次安装需要编译的包时触发)。
常见问题排查
- 切换版本提示权限/失败(exit status 5/权限不足)
- 以管理员身份运行命令行。
- 将“符号链接目录”设为你可写的目录(如
C:\nvm4w\nodejs),避免C:\Program Files\nodejs。
nvm list available拉不下列表- 检查镜像配置是否为
https://npmmirror.com/mirrors/node/。 - 稍后再试或临时切换网络。
- 检查镜像配置是否为
- 切换后
node -v仍是旧版本- 关闭并重新打开命令行窗口(刷新 PATH)。
- 检查系统环境变量 PATH 中是否存在其他 Node 目录,移除它们(保留符号链接目录)。
- 全局包“丢了”
- 正常现象:每个 Node 版本有各自的全局包。切换版本即切换全局包。
.nvmrc自动识别- nvm-windows 不会自动读取
.nvmrc。可手动nvm use <version>,或用脚本增强。
- nvm-windows 不会自动读取
与 WSL、Docker 的关系
- nvm-windows 仅管理 Windows 下的 Node。WSL 中请使用 Linux 版 nvm(curl 安装脚本)。
- 若你用 Docker,容器内的 Node 版本与主机无关,由镜像控制。
目录与文件一览(默认/推荐)
- NVM 根目录(你可选的):
C:\Users\用户\AppData\Local\nvm- 存放各版本 Node:
...\nvm\v16.14.0\,...\nvm\v18.19.1\等 - 配置:
settings.txt
- 存放各版本 Node:
- 符号链接目录(推荐避免 Program Files):
C:\nvm4w\nodejs- 指向“当前使用”的 Node 版本,命令行里的
node/npm实际来自这里
- 指向“当前使用”的 Node 版本,命令行里的
常用命令速查表
- 查看已装版本:
nvm list - 可安装版本:
nvm list available - 安装指定版本:
nvm install <version> [32|64] - 安装最新/稳定:
nvm install latest/nvm install lts - 切换版本:
nvm use <version> - 设默认版本:
nvm alias default <version> - 卸载版本:
nvm uninstall <version> - 查看架构:
nvm arch - 显示 nvm 版本:
nvm version
选择版本的实用建议
- 新项目:优先用最新 LTS。
- 旧项目:跟随项目
.nvmrc或文档指定版本(手动切换)。 - 构建工具链(Webpack/Vite)较新时:Node 版本至少满足其最低要求。
更多推荐


所有评论(0)