Skip to content

nvm 安装与使用指南

什么是 nvm

nvm(Node Version Manager)是一个 Node.js 版本管理工具,允许你在同一台机器上安装和切换多个 Node.js 版本。不同项目可能依赖不同的 Node.js 版本,nvm 可以轻松解决这个问题。

Windows 用户请使用 nvm-windows,它是 nvm 的 Windows 移植版本,使用方式基本一致。

安装

Windows

  1. 前往 nvm-windows Releases 下载最新的 nvm-setup.exe
  2. 运行安装程序,建议自定义安装路径(例如 D:\software\nvm
  3. 安装过程中会提示设置 Node.js 的 symlink 目录(例如 D:\software\nodejs
  4. 安装完成后重新打开终端

macOS / Linux

bash
# 使用官方安装脚本
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash

# 或使用 wget
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash

安装完成后,重启终端或执行:

bash
source ~/.bashrc   # bash 用户
source ~/.zshrc    # zsh 用户

验证安装

bash
nvm version
# 输出类似:1.1.12(Windows)或 0.40.1(macOS/Linux)

常用命令

查看可安装的版本

bash
# 查看所有可用的远程版本
nvm list available        # Windows
nvm ls-remote             # macOS/Linux

# 查看所有可用的 LTS 版本
nvm ls-remote --lts       # macOS/Linux

安装 Node.js

bash
# 安装指定版本
nvm install 18.20.0
nvm install 20.11.1

# 安装最新的 LTS 版本
nvm install --lts         # macOS/Linux
nvm install lts           # Windows

切换版本

bash
# 切换到指定版本
nvm use 18.20.0
nvm use 20.11.1

# 验证当前版本
node -v

查看已安装的版本

bash
nvm list                  # Windows
nvm ls                    # macOS/Linux

输出示例:

  * 20.11.1 (Currently using 64-bit executable)
    18.20.0
    16.20.2

设置默认版本

bash
# macOS/Linux:设置默认版本(新终端自动使用)
nvm alias default 20.11.1

# Windows:设置默认版本
nvm use 20.11.1
# nvm-windows 会记住最后一次 use 的版本

卸载版本

bash
nvm uninstall 16.20.2

项目级版本锁定

在项目根目录创建 .nvmrc 文件,指定项目所需的 Node.js 版本:

bash
# 写入版本号
echo "20.11.1" > .nvmrc

之后在项目目录下执行:

bash
nvm use        # macOS/Linux 会自动读取 .nvmrc

Windows 的 nvm-windows 不支持自动读取 .nvmrc,需要手动 nvm use <版本号>

Windows 安装到非 C 盘

如果你希望 nvm 和 Node.js 都安装在 D 盘,安装时需要注意两个路径:

  1. nvm 安装路径D:\software\nvm
  2. Node.js symlink 路径D:\software\nodejs

安装完成后检查环境变量:

bash
# 确认以下两个环境变量已设置
echo %NVM_HOME%          # 应输出 D:\software\nvm
echo %NVM_SYMLINK%       # 应输出 D:\software\nodejs

同时确认系统 PATH 中包含这两个路径。

配置镜像源加速

国内用户下载 Node.js 可能较慢,可以配置镜像:

bash
# Windows:编辑 nvm 安装目录下的 settings.txt,添加:
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/
bash
# macOS/Linux:设置环境变量
export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/

常见问题

Q: nvm use 切换后,新终端又变回去了?

macOS/Linux:需要设置默认版本 nvm alias default <版本号>

Windows:nvm-windows 会记住最后一次 nvm use 的版本,正常情况下不会重置。如果出现问题,检查环境变量中是否有其他 Node.js 路径冲突。

Q: 全局安装的 npm 包切换版本后找不到了?

每个 Node.js 版本有独立的全局包目录。切换版本后需要重新安装全局包,或者使用以下方式迁移:

bash
# macOS/Linux:切换版本时自动迁移全局包
nvm install 20.11.1 --reinstall-packages-from=18.20.0

Q: 和 Volta、fnm 有什么区别?

工具语言速度Windows 支持自动切换
nvmShell一般nvm-windows.nvmrc
fnmRust原生支持.nvmrc / .node-version
VoltaRust原生支持package.json

nvm 是最老牌、社区最成熟的方案。如果追求速度可以考虑 fnm。

Released under the MIT License.