NVM 安装 (Windows版本)
NVM 安装 (Windows版本)
- 一、NVM 介绍
- 1. 什么是 NVM
- 2. NVM、Node.js 与 NPM 的关系
- 二、NVM 的下载与安装(Windows版本)
- 步骤1. 下载渠道(官方安全)
- 步骤2. 配置 NPM 项目加速镜像
- 步骤3. 配置 NVM 镜像
- 步骤4. 配置全局共享 NPM
- (1)如何配置全局共享 NPM(看需)
- (2)取消全局共享 NPM(看需)
- 三、Node 版本切换的注意事项
- 场景一:重新安装项目依赖
- 场景二:检查并补装全局包
- 场景三:清理 NPM 缓存(必要时)
- 四、解决全局包版本和某 Node 版本不兼容的方法
- 临时解决
- 长期解决
- 五、扩展
- 一、NPM 的默认全局安装目录
- 二、NPM 的默认缓存安装目录
- 三、NPM 的本地安装(不加 -g)与全局安装(加 -g)
一、NVM 介绍
1. 什么是 NVM
NVM 全称为 Node Version Manager,在 Windows 系统中特指 nvm-windows——一款专门用于管理多 Node.js 版本的工具。
其核心价值是解决 Windows 下“不同项目依赖不同 Node.js 版本”的冲突问题:例如同时开发老项目(需 Node 16)与新项目(需 Node 18)时,无需手动卸载旧版本、修改系统环境变量,仅通过命令即可实现 Node 版本的一键切换,确保各项目环境独立且稳定。
2. NVM、Node.js 与 NPM 的关系
三者在 Windows 环境下呈“层级绑定”关系,逻辑清晰且联动紧密,具体如下:
-
NVM(nvm-windows):顶层版本管理者,负责 Node.js 版本的“安装、切换、卸载”。
例如:通过nvm install 18安装 Node 18,通过nvm use 16切换到 Node 16,不直接参与代码运行或包管理。 -
Node.js:底层运行环境,是执行前端代码(如 Vue、React 项目)的核心。
每个 Node.js 版本在 Windows 中对应独立文件夹(如D:\Nvm\versions\node\v16.18.0),不同版本互不干扰。 -
NPM:Node.js 自带的包管理工具,每个 Node.js 版本会自动附带匹配的 NPM 版本(如 Node 16 绑定 NPM 8,Node 18 绑定 NPM 9)。
当 NVM 切换 Node 版本时,NPM 会自动同步切换(例如切到 Node 18 后,npm -v会显示 9.x),无需额外配置。
实操案例:
通过 NVM 安装 Node 16 和 18 后,执行 nvm use 16 会自动调用 Node 16 及配套的 NPM 8;
执行 nvm use 18 则切换为 Node 18 及配套的 NPM 9,三者一一对应,避免版本混乱。
二、NVM 的下载与安装(Windows版本)
Windows 需使用 nvm-windows 工具,需从官方渠道下载并按规范安装,步骤如下:
步骤1. 下载渠道(官方安全)
-
官方下载地址:GitHub nvm-windows Releases 页面
-
推荐版本:选择
nvm-setup.zip(安装包版),目前此处版本为1.2.2

(1)安装步骤(关键注意事项)
-
解压下载的
nvm-setup.zip,双击nvm-setup.exe启动安装,同意协议后选择 NVM 安装目录(如D:\Nvm),严禁选择含空格/特殊字符的路径(如C:\Program Files,会导致 Node 安装失败)。 -
下一步设置 Node.js 快捷方式目录(如
D:\NodeJs),此目录为 Windows 系统调用 Node 的“入口路径”,需与 NVM 安装目录分开且为空。 -
点击“Install”完成安装,NVM 会自动配置
NVM_HOME(NVM 安装目录)和NVM_SYMLINK(Node 快捷方式目录)环境变量,无需手动添加。
(2)安装验证
打开 新的 CMD/PowerShell 窗口(旧窗口不加载新环境变量),执行以下命令:
# 查看 NVM 版本,显示版本号(如 1.1.10)即安装成功
nvm version
# 查看本地已安装的 Node 版本(初始为空)
nvm ls
步骤2. 配置 NPM 项目加速镜像
NPM 默认从国外官方镜像下载项目依赖,Windows 下易因网络问题导致超时,需配置国内加速镜像(npmmirror,原淘宝镜像)
(1)核心镜像信息
-
原镜像(默认):
https://registry.npmjs.org/(服务器位于国外,下载vue、axios等包时易出现“ETIMEDOUT”超时错误); -
加速镜像:
https://registry.npmmirror.com/(国内镜像,10 分钟同步一次官方仓库,Windows 下下载速度可从“几十 KB/s”提升至“几 MB/s”)。
(2)配置步骤
- 查询当前镜像:
npm config get registry
若输出 https://registry.npmjs.org/,说明当前使用默认国外镜像。
- 配置加速镜像:
npm config set registry https://registry.npmmirror.com
- 验证配置结果:
npm config get registry
若输出 https://registry.npmmirror.com,说明配置成功。
(3)还原默认镜像(如需)
若需切换回 NPM 官方镜像,执行以下命令:
npm config set registry https://registry.npmjs.org/
实操案例:未配置加速镜像时,npm install vue 需 30 秒且易超时;配置后仅需 5 秒即可完成下载,且无网络错误。
步骤3. 配置 NVM 镜像
NVM 下载 Node.js 版本时默认从国外官方镜像获取,Windows 下易因网络问题导致下载缓慢或中断,需配置国内加速镜像,具体如下:
(1)核心镜像信息
原镜像(默认):https://nodejs.org/dist/(下载 Node 安装包时速度慢,如 Node 16 需 10 分钟);
加速镜像:
- Node 镜像:
https://npmmirror.com/mirrors/node/- NPM 镜像:
https://npmmirror.com/mirrors/npm/(下载 Node 时自动同步 NPM 安装包,确保版本匹配)。
(2)配置步骤
1.找到 NVM 配置文件:打开 NVM 安装目录(如 D:\Nvm),找到 settings.txt 文件(文本格式)。
2.添加镜像配置:用记事本打开 settings.txt,在文件末尾追加以下两行:
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/
3.验证配置结果:执行以下命令下载 Node 16,观察下载速度:
nvm install 16.18.0
配置前需 10 分钟,配置后仅需 1 分钟,且无中断,说明配置成功。
步骤4. 配置全局共享 NPM
注意!!!
v1.2.2 安装包默认实现了npm的全局共享
全局共享NPM最直观的现象:在任意一个Node版本下全局安装的包,切换到另一个版本后可直接使用,无需重复安装。
优点:装一次全局包,多版本能用
缺点:若全局包版本和某 Node 版本不兼容,切换后会直接报错(解决方案看章节四)。
(1)如何配置全局共享 NPM(看需)
实现核心:就是把他们的全局安装目录统一到同一个文件
步骤如下:
1.创建统一全局目录:如 D:\NodeGlobal;
2.给每个 Node 版本设置统一 prefix:
# 切换到 Node 16
nvm use 16
npm config set prefix D:\NodeGlobal
# 切换到 Node 18
nvm use 18
npm config set prefix D:\NodeGlobal
3.验证配置:任意 Node 版本下执行 npm config get prefix,均输出 D:\NodeGlobal 即成功。。
(2)取消全局共享 NPM(看需)
如果你配置了全局共享 NPM,想要为每个 npm 恢复独立全局目录,操作如下
针对每个 Node 版本,删除统一prefix配置
由于prefix配置是按 Node 版本独立存储的(即 Node 16 和 18 的prefix是分开设置的),需要分别切换到每个版本执行删除操作:
# 1. 切换到Node 16
nvm use 16# 2. 删除之前设置的统一prefix(如D:\NodeGlobal)
npm config delete prefix# 3. 验证是否恢复默认全局目录
npm config get prefix
# 输出应为Node 16的默认全局目录,例如:
# D:\Nvm\versions\node\v16.18.0\node_global
# 1. 切换到Node 18
nvm use 18# 2. 同样删除统一prefix配置
npm config delete prefix# 3. 验证默认目录
npm config get prefix
# 输出应为Node 18的默认全局目录,例如:
# D:\Nvm\versions\node\v18.20.3\node_global
三、Node 版本切换的注意事项
场景一:重新安装项目依赖
Node 版本切换后,项目依赖需重新下载,因不同 Node 版本对依赖的编译格式、子版本解析规则存在差异。
案例:用 Node 16 开发“项目 A”并安装依赖(D:\Projects\A\node_modules),切换到 Node 18 后运行 npm run dev 报错“Cannot find module ‘xxx’”,需按以下步骤操作:
-
删除项目 A 根目录的
node_modules文件夹和package-lock.json文件; -
执行
npm install,重新下载适配 Node 18 的依赖; -
再次执行
npm run dev,项目正常启动。
场景二:检查并补装全局包
切换 Node 版本后,需确认当前版本是否已安装所需全局包(如 vue-cli、vite),未安装则需补装。
案例:切换到 Node 18 后,执行 vue -V 提示“‘vue’ 不是内部或外部命令”,说明 Node 18 未安装 vue-cli,需执行:
# 全局安装适配 Node 18 的 vue-cli(自动下载 最新 版本)
npm install -g @vue/cli
# 验证
vue -V # 输出 @vue/cli 5.x.x,说明安装成功
场景三:清理 NPM 缓存(必要时)
切换 Node 版本后,若 npm install 提示“cache corrupted”或“invalid cache”,需清理缓存后重新安装。
案例:切换 Node 版本后执行 npm install axios 报错,执行 npm cache clean --force 清理缓存,再重新安装即可解决。
四、解决全局包版本和某 Node 版本不兼容的方法
临时解决
该方式需要频繁卸载重装,仅适合短期应急。
# 切换到Node 16,装兼容版本
nvm use 16.20.2
npm uninstall -g @vue/cli
npm install -g @vue/cli@4# 用完Node 16后,切回Node 18时,再装回高版本
nvm use 18.20.2
npm uninstall -g @vue/cli
npm install -g @vue/cli@5# 用完Node 18后,切回Node 16时,再装回低版本
nvm use 16.20.2
npm uninstall -g @vue/cli
npm install -g @vue/cli@4
长期解决
恢复 “每个 Node 版本独立的全局目录”
# 1. 分别删除两个版本的共享prefix
nvm use 16.20.2
npm config delete prefixnvm use 18.20.2
npm config delete prefix# 2. 验证是否恢复默认独立目录
nvm use 16.20.2
npm config get prefix # 应输出Node 16专属目录(如D:\Nvm\versions\node\v16.20.2\node_global)nvm use 18.20.2
npm config get prefix # 应输出Node 18专属目录# 3. 为两个版本安装专属全局包
nvm use 16.20.2
npm install -g @vue/cli@4 # Node 16用4.xnvm use 18.20.2
npm install -g @vue/cli@5 # Node 18用5.x# 4. 验证版本独立
nvm use 16.20.2 && vue -V # 输出4.x
nvm use 18.20.2 && vue -V # 输出5.x
五、扩展
一、NPM 的默认全局安装目录
NPM 的“全局安装目录”用于存储通过 npm install -g <包名> 安装的“全局包”(如 vue-cli、vite)。
Windows 下分“非 NVM 环境”和“NVM 环境”两种场景,具体如下:
(1)非 NVM 环境(单独安装 Node.js)
默认路径:C:\Users<你的用户名>\AppData\Roaming\npm(例如用户名为“ZhangSan”,路径为 C:\Users\ZhangSan\AppData\Roaming\npm)。
目录内容举例:
node_modules文件夹:存储全局包,如安装vue-cli和vite后,会生成@vue/cli、vite子文件夹;- 可执行命令文件:如
vue.cmd、vite.cmd,在任意 CMD 窗口输入vue -V或vite --version即可调用。
(2)NVM 环境(多 Node 版本管理)
默认路径:%NVM_HOME%\versions\node\v<版本号>\node_global
(例如 NVM 安装在 D:\Nvm,Node 16 的路径为 D:\Nvm\versions\node\v16.18.0\node_global)。
目录内容举例:
- 每个 Node 版本的全局包独立存储:
如给 Node 16 安装npm install -g @vue/cli@4,此目录下的node_modules会包含@vue/cli(4.x 版本);切换到 Node 18 后,全局目录变为D:\Nvm\versions\node\v18.20.3\node_global,若未安装vue-cli,输入vue -V会提示“‘vue’ 不是内部或外部命令”。
(3)查看当前全局安装目录
无论是否使用 NVM,执行以下命令即可查看当前生效的全局目录:
npm config get prefix
二、NPM 的默认缓存安装目录
NPM 缓存目录用于存储“已下载的包压缩包及解压文件”,避免重复从网络下载,Windows 下无论是否使用 NVM,缓存目录均统一
(1)默认路径
C:\Users<你的用户名>\AppData\Local\npm-cache
(例如用户名为“ZhangSan”,路径为 C:\Users\ZhangSan\AppData\Local\npm-cache)。
(2)目录内容举例
- 包压缩包:如下载
vue@2.6.14后,会生成vue-2.6.14.tgz文件; - 解压缓存文件:
_cacache文件夹中存储解压后的包源码(如vue的核心文件),下次安装相同版本时,NPM 直接复用缓存,无需重新下载; - 缓存日志:
logs文件夹中的日志文件,记录每次下载的时间、包版本、下载状态(成功/失败)。
(3)缓存相关操作
查看当前缓存目录:
npm config get cache
清理缓存(解决缓存损坏导致的安装失败):
npm cache clean --force
实操案例:执行 npm install vue 时提示“cache corrupted”,执行 npm cache clean --force 清理缓存后,重新安装即可成功。
npm install(本地安装)与 npm install -g(全局安装)的关系(Windows 案例)
三、NPM 的本地安装(不加 -g)与全局安装(加 -g)
- 本地安装(不加 -g):每个项目单独装,只在当前项目里能用,存在项目的 node_modules 中。换项目就得重新装。
- 全局安装(加 -g):装一次,所有项目 / 目录都能用,存在当前 Node 版本的全局目录中。换 Node 版本才需要重新装。
一句话总结:本地是 “项目专属,重复装”;全局是 “一次安装,全局用(当前 Node 版本下)”。
