NVM安装与常用命令

这是一份非常详细的 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 通过一个安装脚本来安装。打开你的终端,执行以下任一命令 (curlwget,根据你的系统已安装的工具选择):

使用 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 命令生效,你需要执行以下操作之一:

  1. 关闭并重新打开终端
  2. 或者,在当前终端中执行 source ~/.zshrc (如果你使用 Zsh) 或 source ~/.bashrc (如果你使用 Bash) 来加载配置。

验证安装

在新的终端窗口中输入以下命令:

nvm --version

如果输出了版本号(如 0.39.7),说明 NVM 已经成功安装。如果提示 command not found,请检查上一步的环境变量配置是否正确。

2. 在 Windows 上安装

原生的 NVM 不支持 Windows,但有一个功能相同的替代品叫做 nvm-windows

  1. 访问下载页面

    前往 nvm-windows 的 GitHub Releases 页面

  2. 下载安装程序

    找到最新的版本,下载 nvm-setup.exe 安装文件。

  3. 安装

    双击 nvm-setup.exe 并按照提示进行安装。你需要指定两个路径:

    • NVM 的安装路径:例如 D:\nvm
    • Node.js 的符号链接路径:这是你当前使用的 Node.js 版本存放的地方,例如 D:\Program Files\nodejs。安装程序会自动处理系统环境变量。

验证安装

打开一个新的 命令提示符 (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 lsnvm 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 versionnvm vnvm -v:显示nvm版本。version 可简化为 v

nvm ls availablenvm list available 列出目前目前可用版本,查看可以安装的node版本的过程中我们注意到有这样几个栏: CURRENTLTSOLD STABLEOLD 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 阶段。
  • 不再接收任何更新。
  • 不建议使用。