在现代前端和后端开发中,Node.js 已经成为不可或缺的技术栈。然而,随着项目的多样化,开发者经常会遇到不同项目依赖不同 Node.js 版本的情况。例如,一个老项目可能需要 Node.js 14,而一个新项目则需要 Node.js 18 或更高版本。手动切换和管理这些版本不仅效率低下,还容易引发冲突。
这就是 nvm (Node Version Manager) 登场的原因。NVM 是一个强大的命令行工具,旨在帮助开发者轻松地在不同 Node.js 版本之间进行安装、切换和管理。本文将为您详细介绍如何进行 nvm安装,并掌握其核心用法,让您的 Node.js 开发环境从此变得井然有序。
为什么需要NVM?NVM的优势
在深入了解 nvm安装 过程之前,我们先来探讨一下为什么 NVM 是 Node.js 开发者的必备工具:
- 多版本共存与无缝切换: 这是 NVM 最核心的功能。它允许您在同一台机器上安装多个 Node.js 版本,并根据项目需求随时切换,避免了版本冲突问题。
- 简化安装过程: 无需手动下载和配置 Node.js,NVM 可以通过简单的命令自动下载并安装指定版本的 Node.js。
- 环境隔离: 每个 Node.js 版本在 NVM 中都是独立安装的,其对应的 npm 包也会被隔离管理,确保不同项目的依赖互不干扰。
- 便于测试与升级: 您可以轻松安装新的 Node.js 版本进行测试,而不会影响当前稳定的开发环境,这对于升级项目依赖或探索新特性非常方便。
nvm安装前准备
在开始 nvm安装 之前,请确保您的系统满足以下基本要求:
- Git: 尽管不是强制要求,但 NVM 的某些安装方式和内部机制可能需要 Git。如果您还没有安装 Git,建议先行安装。
- 删除现有Node.js安装: 为了避免与 NVM 管理的 Node.js 版本冲突,强烈建议您在进行 nvm安装 前,卸载系统中已有的 Node.js 和 npm。
- 网络连接: NVM 在安装 Node.js 版本时需要从互联网下载相关文件。
nvm安装:分步指南
NVM 的安装过程因操作系统的不同而略有差异。我们将分别介绍 macOS/Linux 和 Windows 平台的安装方法。
macOS 和 Linux 上的 nvm安装
在 macOS 和大多数 Linux 发行版上,nvm安装 通常通过官方提供的安装脚本进行。
1. 使用 cURL 或 Wget 安装
这是推荐的安装方式。打开您的终端(Terminal),然后执行以下任一命令:
使用 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 仓库(https://github.com/nvm-sh/nvm/releases)中找到最新的版本号,并替换命令中的版本号以确保安装最新版本。
2. 配置环境变量
安装脚本会自动尝试修改您的 shell 配置文件(例如 ~/.bashrc, ~/.zshrc, ~/.profile 或 ~/.bash_profile),将 NVM 的加载脚本添加到其中。这是为了确保每次打开新的终端窗口时,NVM 都能被正确加载。
安装完成后,您需要重新启动终端或手动运行以下命令来使配置生效:
source ~/.bashrc
(如果您的 shell 是 Bash)
或
source ~/.zshrc
(如果您的 shell 是 Zsh)
如果您不确定使用哪个,可以尝试执行 echo $SHELL 来查看您的当前 shell。
3. 验证 nvm安装
在重新启动终端或执行 source 命令后,运行以下命令来验证 NVM 是否已成功安装:
nvm --version
如果显示了 NVM 的版本号,则表示 nvm安装 成功。如果提示 command not found,请检查您的 shell 配置文件是否正确添加了 NVM 的加载脚本,并确保已重新加载配置文件。
Windows 上的 nvm安装
请注意,Windows 上的 NVM 并非与 macOS/Linux 上的 NVM 是同一个项目。Windows 版本由 Corey Butler 维护,名为 nvm-windows,其功能和用法与 Unix-like 系统上的 NVM 略有不同,但目标一致。
在进行 nvm安装 前,请确保已卸载系统中的 Node.js。
1. 下载 nvm-windows 安装程序
访问 nvm-windows 的 GitHub 发布页面:https://github.com/coreybutler/nvm-windows/releases
在最新版本下找到并下载 nvm-setup.zip 文件。解压后,运行 nvm-setup.exe 安装程序。
2. 运行安装程序
按照安装向导的提示进行操作:
- 许可协议: 同意许可协议。
-
选择 NVM 安装路径: 建议使用默认路径
C:UsersYourUserNameAppDataRoaming vm(或类似路径),或选择一个没有空格且易于访问的路径,例如C: vm。 -
选择 Node.js 安装路径: 这是 NVM 将安装不同 Node.js 版本的目录。同样建议使用默认路径或一个没有空格的路径,例如
C: odejs。 - 完成安装: 点击“安装”并等待安装完成。安装程序会自动配置所需的系统环境变量。
3. 验证 nvm安装
打开一个新的命令提示符 (CMD) 或 PowerShell 窗口。运行以下命令:
nvm version
如果显示了 NVM for Windows 的版本号,则表示 nvm安装 成功。如果提示 command not found 或其他错误,请检查您的系统环境变量 PATH 中是否包含了 NVM 和 Node.js 的路径。通常情况下,安装程序会自动处理。
NVM 基本用法
成功完成 nvm安装 后,您就可以开始利用它来管理 Node.js 版本了。
1. 安装 Node.js 版本
使用 nvm install 命令安装您需要的 Node.js 版本。您可以指定具体的版本号,也可以使用关键词。
-
安装最新稳定版:
nvm install node -
安装最新的 LTS (长期支持) 版本:
nvm install lts -
安装指定版本:
nvm install 16.17.0
nvm install 18.12.0NVM 会自动下载对应的 Node.js 和 npm 版本并进行安装。
2. 切换 Node.js 版本
安装了多个版本后,您可以使用 nvm use 命令来切换当前使用的 Node.js 版本。
-
切换到指定版本:
nvm use 16.17.0执行此命令后,当前终端会话中的 Node.js 版本就会切换到 16.17.0。
-
验证当前 Node.js 版本:
node -v
npm -v
3. 查看已安装的 Node.js 版本
使用 nvm ls (或 nvm list) 命令可以查看所有已安装的 Node.js 版本,并会高亮显示当前正在使用的版本。
nvm ls
示例输出:
-> v16.17.0
v18.12.0
v20.0.0
default -> 16.17.0 (-> v16.17.0)
其中 -> 指向的是当前正在使用的版本。
4. 设置默认 Node.js 版本
为了避免每次打开新终端时都手动切换版本,您可以设置一个默认版本。
nvm alias default 16.17.0
这将使得每次打开新终端时,系统默认使用 Node.js 16.17.0 版本。
5. 卸载 Node.js 版本
如果您不再需要某个 Node.js 版本,可以使用 nvm uninstall 命令将其卸载。
nvm uninstall 16.17.0
注意: 不要卸载当前正在使用的 Node.js 版本。请先切换到其他版本或卸载 NVM 本身。
NVM 常见问题(FAQ)
如何更新NVM自身?
macOS/Linux: 您可以重新运行最初的安装脚本。NVM 会检测到现有安装并提示您更新。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash (替换为最新版本号)
或者,如果您是通过 `git clone` 安装的,可以进入 NVM 目录执行 `git pull`。Windows: 访问 nvm-windows 的 GitHub 发布页面,下载最新版的 `nvm-setup.exe` 并重新运行安装程序即可覆盖更新。
为何安装后NVM命令仍然找不到?
这通常是因为 NVM 的环境变量没有正确加载到您的 shell 中。
- macOS/Linux: 确保 NVM 的加载脚本已添加到您的 shell 配置文件(如 `.bashrc`, `.zshrc`, `.profile`)中,并且您已经重新启动了终端或执行了 `source` 命令来重新加载配置。
- Windows: 检查系统环境变量 `PATH` 中是否包含 NVM 的安装路径。如果没有,尝试重新运行安装程序或手动添加。
NVM和直接安装Node.js有什么区别?
直接安装 Node.js 会将一个版本的 Node.js 全局安装到您的系统中,并且难以在多个版本之间切换。而 NVM 作为一个版本管理工具,允许您在同一台机器上安装、管理和切换多个 Node.js 版本,每个版本及其对应的 npm 包都是独立的,避免了版本冲突,尤其适合需要同时维护多个项目的开发者。
如何卸载NVM?
macOS/Linux:
- 首先,从您的 shell 配置文件(如 `.bashrc`, `.zshrc`)中删除 NVM 相关的行。
- 然后,删除 NVM 的安装目录,通常是 `~/.nvm`:`rm -rf ~/.nvm`。
- 找到您安装 NVM for Windows 的目录(例如 `C: vm`)。
- 运行其中的 `uninstaller.exe` (如果存在),或者手动删除 NVM 的安装目录和 NVM 管理的 Node.js 目录(例如 `C: odejs`)。
- 最后,从系统环境变量 `PATH` 中移除 NVM 相关的条目。
NPM和NVM有什么关系?
NVM (Node Version Manager) 是一个 Node.js 版本管理工具,它的主要职责是安装、切换和管理不同版本的 Node.js。
NPM (Node Package Manager) 是 Node.js 的包管理器,它随着 Node.js 的安装而自带,用于管理 Node.js 项目的依赖包。当您通过 NVM 切换 Node.js 版本时,相应版本的 NPM 也会随之切换,因为它与 Node.js 版本是紧密绑定的。简而言之,NVM 管理 Node.js 环境,NPM 管理项目依赖。
总结
通过本文的详细指导,您应该已经成功完成了 nvm安装,并对 NVM 的基本用法有了深入的了解。无论是 Node.js 初学者还是经验丰富的开发者,NVM 都是一个能够显著提升开发效率的利器。它简化了 Node.js 版本管理,避免了环境冲突,让您可以更专注于代码的编写,而不是繁琐的环境配置。现在,开始您的多版本 Node.js 开发之旅吧!

