一、NVM简介
1.1 什么是NVM?
NVM 是 Node.js 版本管理工具,允许用户在同一台设备上安装和切换多个 Node.js 版本,解决不同项目对 Node.js 版本依赖冲突的问题。其核心优势包括:
-
多版本隔离:每个版本拥有独立的
node_modules
和全局包,避免依赖冲突69。 -
跨平台支持:支持 macOS/Linux(通过
nvm-sh
)和 Windows(通过nvm-windows
)67。 -
便捷的命令行操作:安装、切换、卸载版本仅需简单命令13。
1.2 适用场景
-
开发需兼容不同 Node.js 版本的项目。
-
测试新版本特性或回退旧版本。
-
团队协作时统一开发环境。
二、环境安装与配置
2.1 安装前准备
-
卸载旧版 Node.js:
通过控制面板卸载 Node.js,并删除残留目录(如C:\Program Files\nodejs
)和环境变量610。 -
检查系统权限:Windows 建议以管理员身份运行安装程序9。
2.2 安装步骤
macOS/Linux
# 使用 cURL 安装
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# 或使用 Wget
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# 验证安装
command -v nvm # 输出 "nvm" 即成功:cite[1]:cite[7]
Windows
-
下载 nvm-windows 安装包。
-
安装时注意路径无空格或中文,推荐默认配置69。
-
验证安装:
win+R 输入CMD 在命令提示中输入 nvm version # 显示版本号即成功
2.3 配置镜像加速
命令行配置(临时)
nvm node_mirror https://npmmirror.com/mirrors/node/
nvm npm_mirror https://npmmirror.com/mirrors/npm/:cite[3]:cite[6]
修改配置文件(永久)
-
Windows:在
settings.txt
中添加:node_mirror: https://npmmirror.com/mirrors/node/ npm_mirror: https://npmmirror.com/mirrors/npm/:cite[2]:cite[6]
-
macOS/Linux:在
~/.nvm/nvm.sh
中设置环境变量。
三、核心命令与操作
3.1 版本管理
命令 | 功能描述 | 示例 |
---|---|---|
nvm install <version> | 安装指定版本 | nvm install 18.12.1 |
nvm use <version> | 切换版本 | nvm use 16.14.0 |
nvm alias default <version> | 设置默认版本 | nvm alias default 20.0.0 |
nvm ls | 查看已安装版本 | nvm ls |
nvm uninstall <version> | 卸载版本 | nvm uninstall 14.17.0 |
3.2 常用命令
nvm off // 禁用node.js版本管理(不卸载任何东西)
nvm on // 启用node.js版本管理
nvm install <version> // 安装node.js的命名 version是版本号 例如:nvm install 8.12.0
nvm uninstall <version> // 卸载node.js是的命令,卸载指定版本的nodejs,当安装失败时卸载使用
nvm ls // 显示所有安装的node.js版本
nvm list available // 显示可以安装的所有node.js的版本
nvm use <version> // 切换到使用指定的nodejs版本
nvm v // 显示nvm版本
nvm install stable // 安装最新稳定版
nvm命令行操作命令
1,nvm nvm list 是查找本电脑上所有的node版本
- nvm list 查看已经安装的版本
- nvm list installed 查看已经安装的版本
- nvm list available 查看网络可以安装的版本
2,nvm install 安装最新版本nvm
3,nvm use <version> ## 切换使用指定的版本node
4,nvm ls 列出所有版本
5,nvm current 显示当前版本
6,nvm alias <name> <version> ## 给不同的版本号添加别名
7,nvm unalias <name> ## 删除已定义的别名
8,nvm reinstall-packages <version> ## 在当前版本node环境下,重新全局安装指定版本号的npm包
9,nvm on 打开nodejs控制
10,nvm off 关闭nodejs控制
11,nvm proxy 查看设置与代理
12,nvm node_mirror [url] 设置或者查看setting.txt中的node_mirror,如果不设置的默认是 https://nodejs.org/dist/
nvm npm_mirror [url] 设置或者查看setting.txt中的npm_mirror,如果不设置的话默认的是: https://github.com/npm/npm/archive/.
13,nvm uninstall <version> 卸载制定的版本
14,nvm use [version] [arch] 切换制定的node版本和位数
15,nvm root [path] 设置和查看root路径
16,nvm version 查看当前的版本
3.3 高级功能
-
项目专属版本:
在项目根目录创建.nvmrc
文件,内容为版本号(如18.12.1
),运行nvm use
自动切换48。 -
全局包共享:
配置npm config set prefix
和npm config set cache
实现多版本共享全局包210。
四、常见问题与解决方案
4.1 安装失败
-
镜像问题:检查镜像配置,切换至淘宝或腾讯云镜像36。
-
权限不足:Windows 使用管理员权限运行终端9。
4.2 版本切换无效
-
路径冲突:确保环境变量中无残留的 Node.js 路径10。
-
重启终端:部分配置需重启终端生效2。
五、进阶使用
5.1 多版本协作
-
并行测试:同时安装 LTS 和最新版,通过
nvm use
切换测试兼容性。 -
脚本自动化:结合 Shell 脚本实现环境自动切换。
5.2 替代工具对比(2025年趋势)
工具 | 特点 |
---|---|
FNM | Rust 编写,跨平台,高性能48 |
Volta | 集成包管理,支持智能版本锁4 |
asdf | 多语言支持(Node.js、Python、Ruby)8 |
六、学习资源
-
官方文档:
nvm-sh GitHub | nvm-windows -
社区推荐:
淘宝 NPM 镜像 | Node.js 版本列表