菜单

用途

相关源文件

本页面提供了使用 Node Version Manager (NVM) 管理多个 Node.js 环境的全面指南。NVM 允许开发人员在单个系统上安装、切换和管理不同版本的 Node.js。

有关安装说明,请参阅 安装,有关 NVM 核心组件的信息,请参阅 核心组件

核心用法模式

NVM 提供了几个命令来管理您系统上的 Node.js 版本。以下是最常见的操作:

命令描述
nvm install <version>安装特定版本的 Node.js
nvm use <version>切换到特定版本的 Node.js
nvm run <version> [args]使用指定的 Node.js 版本运行命令
nvm exec <version> <command>使用指定的 Node.js 版本执行命令
nvm ls列出已安装的 Node.js 版本
nvm ls-remote列出可安装的版本
nvm alias <name> <version>为版本创建别名
nvm uninstall <version>卸载特定版本
nvm which <version>显示指定 Node.js 版本的路径

来源:README.md372-431 nvm.sh701-736

安装和切换 Node.js 版本

上面的图表显示了 NVM 如何通过解析版本说明符和管理 PATH 环境变量来处理用于安装和使用不同 Node.js 版本的命令。

来源:nvm.sh739-766 nvm.sh767-795 nvm.sh668-699 nvm.sh981-1004

版本说明符

NVM 在指定 Node.js 版本时接受不同的格式。

说明符描述示例
完整版本显式版本号14.17.0, 16.3.0
主版本号主版本的最新版本14, 16
node最新发布版本node
lts/*最新的 LTS 版本lts/*
lts/<name>特定的 LTS 版本lts/gallium
system系统安装的 Node.jssystem

来源:nvm.sh739-766 nvm.sh869-884 nvm.sh894-927

使用 .nvmrc 文件

NVM 支持通过 .nvmrc 文件进行项目特定的 Node.js 版本配置。这些文件允许您指定特定项目应使用的 Node.js 版本。

创建 .nvmrc 文件

一个 .nvmrc 文件应包含一个单行,其中是有效的 Node.js 版本说明符。

14.17.0

lts/gallium

使用 .nvmrc 文件

当您在包含 .nvmrc 文件的目录中运行 nvm usenvm install 而不指定版本时,NVM 将使用文件中指定的版本。

来源:nvm.sh496-512 nvm.sh508-628 README.md445-464

自动目录更改

您可以通过使用 shell 钩子配置您的 shell,使其在更改目录时自动切换 Node.js 版本,这些钩子会自动检测并使用 .nvmrc 文件。

对于 bash

对于 zsh

来源:README.md465-478

管理别名

NVM 提供别名功能,用于为特定 Node.js 版本创建快捷方式。

常用别名命令

命令描述
nvm alias <name> <version>创建新别名
nvm alias default <version>设置默认 Node.js 版本
nvm unalias <name>删除别名
nvm alias列出所有别名

内置别名

NVM 包含几个内置别名:

别名描述
node最新发布的 Node.js 版本
lts/*最新的 LTS 版本
lts/<name>命名的 LTS 版本(例如,lts/gallium)
默认新 shell 中使用的默认版本

来源:nvm.sh682-684 README.md386-391 README.md425-431

LTS(长期支持)版本

Node.js 提供 LTS 版本,这些版本享有更长的维护窗口。NVM 使处理这些版本变得容易。

常用 LTS 命令

命令描述
nvm install --lts安装最新的 LTS 版本
nvm install lts/*同上
nvm install lts/gallium安装特定的 LTS 版本
nvm use --lts切换到最新的 LTS 版本
nvm ls-remote --lts列出可用的 LTS 版本

来源:README.md432-443 nvm.sh894-927

包迁移

切换 Node.js 版本时,您可能希望转移全局安装的包。NVM 提供了在版本之间迁移包的功能。

迁移全局包

更新 npm

来源:README.md452-483 nvm.sh197-434

默认全局包

您可以通过创建 $NVM_DIR/default-packages 文件,配置 NVM 在安装新 Node.js 版本时自动安装特定包。

示例 default-packages 文件

rimraf
eslint
typescript

来源:README.md485-495

系统路径管理

NVM 通过修改您的 PATH 环境变量来优先使用选定的 Node.js 版本。了解这一点有助于解决环境问题。

该图表显示了 NVM 如何管理 PATH 变量,以控制哪个 Node.js 版本在您的 shell 环境中是活动的。

来源:nvm.sh967-1004 README.md582-592

自定义颜色和输出

NVM 提供自定义输出颜色和格式的选项,以提高可读性。

设置自定义颜色

颜色代码

  • r/R = 红色 / 粗体红色
  • g/G = 绿色 / 粗体绿色
  • b/B = 蓝色 / 粗体蓝色
  • c/C = 青色 / 粗体青色
  • m/M = 品红色 / 粗体品红色
  • y/Y = 黄色 / 粗体黄色
  • k/K = 黑色 / 粗体黑色
  • e/W = 浅灰色 / 白色

来源:README.md537-579 nvm.sh1011-1096

使用镜像站点

对于无法直接访问 Node.js 官方分发服务器的用户,NVM 支持使用镜像站点。

镜像站点必须保持与官方分发服务器相同的目录结构。

来源:README.md593-611

环境变量

NVM 的行为可以通过各种环境变量进行自定义。

可变描述
NVM_DIRNVM 安装目录
NVM_NODEJS_ORG_MIRROR自定义 Node.js 镜像 URL
NVM_IOJS_ORG_MIRROR自定义 io.js 镜像 URL
NVM_COLORS自定义颜色配置
NVM_NO_COLORS禁用彩色输出
NVM_SILENT抑制信息性输出
NVM_RC_VERSION覆盖检测到的 .nvmrc 版本

来源: README.md775-791 nvm.sh435-463

附加命令

这里有一些在核心用法模式中未涵盖的附加有用命令

命令描述
nvm current显示当前激活的版本
nvm deactivate取消设置环境变量以使用系统的 Node.js
nvm reinstall-packages <version>将全局软件包从一个版本重新安装到另一个版本
nvm unload从 shell 中卸载 NVM
nvm which <version>显示已安装的 Node.js 版本的路径
nvm cache dir显示缓存目录的路径
nvm version显示 NVM 版本

来源: README.md613-634

在 Docker 和 CI/CD 系统中使用

NVM 可以在 Docker 容器和 CI/CD 环境中使用,但对于非交互式 shell 需要特殊考虑。

对于 Docker

此模式可确保 NVM 在非交互式 shell 中正确加载。

来源: README.md139-211 Dockerfile1-113