这是一份非常详细的 NVM (Node Version Manager) 安装与使用指南,涵盖了从入门到实践的各个方面。
需要注意的是,Linux/Mac版本和Windows版本的命令和下载仓库是不同的!
一、 什么是 NVM?为什么要使用它?
NVM (Node Version Manager) 是一个用于管理多个 Node.js 版本的工具。
为什么需要 NVM?
在实际开发中,你可能会遇到以下情况:
- 项目依赖不同版本:项目 A 需要 Node.js v16,而一个新项目 B 需要最新的 v20。
- 测试兼容性:需要测试你的代码库在不同 Node.js 版本下的兼容性。
- 平滑升级:想尝试最新的 Node.js 版本,但又不想影响现有项目的稳定运行。
如果没有 NVM,你需要在系统中手动卸载旧版本再安装新版本,这个过程非常繁琐且容易出错。NVM 允许你在同一台机器上轻松地安装、切换和管理多个 Node.js 版本。
二、 NVM 安装
NVM 的安装在 macOS/Linux 和 Windows 上有所不同。
1. 在 macOS / Linux 上安装
NVM 通过一个安装脚本来安装。打开你的终端,执行以下任一命令 (curl
或 wget
,根据你的系统已安装的工具选择):
使用 curl
:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
使用 wget
:
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
注意:
v0.39.7
是目前的较新稳定版本。你可以访问 NVM GitHub 页面 查看最新的版本号并替换。
关键步骤:配置环境变量
安装脚本会自动尝试将配置信息添加到你的 shell 配置文件中,如 ~/.bash_profile
, ~/.zshrc
, ~/.profile
, 或 ~/.bashrc
。
为了使 nvm
命令生效,你需要执行以下操作之一:
- 关闭并重新打开终端。
- 或者,在当前终端中执行
source ~/.zshrc
(如果你使用 Zsh) 或source ~/.bashrc
(如果你使用 Bash) 来加载配置。
验证安装
在新的终端窗口中输入以下命令:
nvm --version
如果输出了版本号(如 0.39.7
),说明 NVM 已经成功安装。如果提示 command not found
,请检查上一步的环境变量配置是否正确。
2. 在 Windows 上安装
原生的 NVM 不支持 Windows,但有一个功能相同的替代品叫做 nvm-windows。
-
访问下载页面:
-
下载安装程序:
找到最新的版本,下载
nvm-setup.exe
安装文件。 -
安装:
双击
nvm-setup.exe
并按照提示进行安装。你需要指定两个路径:- NVM 的安装路径:例如
D:\nvm
- Node.js 的符号链接路径:这是你当前使用的 Node.js 版本存放的地方,例如
D:\Program Files\nodejs
。安装程序会自动处理系统环境变量。
- NVM 的安装路径:例如
验证安装
打开一个新的 命令提示符 (CMD) 或 PowerShell 窗口(以管理员身份运行),然后输入:
nvm version
如果输出了 nvm-windows 的版本号,说明安装成功。
三、 NVM 常用命令
需要注意的是,不同版本的nvm命令可能不尽相同,具体以自己安装的版本的文档为准。
< >
为必选参数,[ ]
为可选参数。
nvm arch
:显示node是运行在32位还是64位。nvm install <version> [arch]
:安装node,version
是特定版本也可以是最新稳定版本latest。可选参数arch指定安装32位还是64位版本,默认是系统位数。可以添加--insecure
绕过远程服务器的SSL。nvm list [available]
:显示已安装的列表。可选参数available
,显示可安装的所有版本。list
可简化为ls
。nvm ls
或nvm list
:显示已安装的列表。nvm on
:开启node.js版本管理。nvm off
:关闭node.js版本管理。nvm proxy [url]
:设置下载代理。不加可选参数url
,显示当前代理。将url
设置为none
则移除代理。nvm node_mirror [url]
:设置node镜像。默认是https://nodejs.org/dist/
。如果不写url,则使用默认url。设置后可至安装目录settings.txt
文件查看,也可直接在该文件操作。nvm npm_mirror [url]
:设置npm镜像https://github.com/npm/cli/archive/
。如果不写url,则使用默认url。设置后可至安装目录settings.txt
文件查看,也可直接在该文件操作。nvm uninstall <version>
:卸载指定版本node。nvm use [version] [arch]
:使用制定版本node。可指定32/64位。nvm root [path]
:设置存储不同版本node的目录。如果未设置,默认使用当前目录。nvm version
或nvm v
或nvm -v
:显示nvm版本。version
可简化为v
。
nvm ls available
或 nvm list available
列出目前目前可用版本,查看可以安装的node版本的过程中我们注意到有这样几个栏: CURRENT
、LTS
、OLD STABLE
和 OLD UNSTABLE
:
CURRENT(当前版本)
定义: CURRENT
是 Node.js 的最新发布版本,包含最新的特性和改进。
特点:
- 包含最新的功能和 API。
- 可能尚未经过充分的生产环境测试。
- 适合喜欢尝试新特性的开发者。
LTS(长期支持版本)
定义: LTS 是 Node.js 的长期支持版本,适合生产环境使用。
特点:
- 稳定性高,经过充分测试。
- 提供长达 30 个月的安全更新和 bug 修复。
- 适合企业级应用和生产环境。
OLD STABLE(旧稳定版本)
定义: OLD STABLE 是指已经结束 LTS 支持的旧版本。
特点:
- 曾经是 LTS 版本,但已经过了维护期。
- 不再接收安全更新或 bug 修复。
- 不建议在生产环境中使用。
OLD UNSTABLE(旧非稳定版本)
定义: OLD UNSTABLE 是指那些从未进入 LTS 阶段的旧版本。
特点:
- 这些版本通常是 CURRENT 版本,但由于某些原因(如发布时间较短)未能进入 LTS 阶段。
- 不再接收任何更新。
- 不建议使用。