文章列表
3 分钟阅读

nvm 安装和使用教程


系列:开发环境管理

第 1 / 10 篇

  1. nvm 安装和使用教程
  2. uv 安装和使用教程
  3. pip 源的设置和使用
  4. uv 进阶:脚本、工作区与工具链实战
  5. pyenv 安装与使用指南
  6. pnpm 安装与使用指南
  7. Poetry 与 uv 对比:Python 项目管理怎么选
  8. direnv 使用指南:按目录自动加载环境变量
  9. Ruff 安装与使用指南
  10. GitHub CLI 使用指南:从 issue 到 PR 的命令行工作流

nvm 是 Node Version Manager 的缩写,用来在同一台机器上安装、切换和管理多个 Node.js 版本。对前端项目来说,它很实用:老项目可能需要 Node 18,新项目可能要求 Node 22,而 nvm 可以让这些版本共存。

适用环境

nvm 主要适用于 macOS、Linux 和 WSL。Windows 原生环境通常使用 nvm-windows,它和这里介绍的 nvm-sh/nvm 不是同一个项目。

安装前建议确认系统里有 curlwget

Terminal window
curl --version

或者:

Terminal window
wget --version

安装 nvm

官方推荐通过安装脚本安装。使用 curl

Terminal window
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.5/install.sh | bash

或者使用 wget

Terminal window
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.5/install.sh | bash

安装脚本会把 nvm 下载到用户目录,并尝试把初始化脚本写入当前 shell 的配置文件,比如 ~/.bashrc~/.zshrc~/.profile

安装完成后,关闭并重新打开终端,或者手动加载配置:

Terminal window
source ~/.bashrc

如果你用的是 zsh:

Terminal window
source ~/.zshrc

验证安装结果:

Terminal window
command -v nvm

如果输出 nvm,说明已经安装成功。

安装 Node.js

安装最新 LTS 版本:

Terminal window
nvm install --lts

安装指定大版本:

Terminal window
nvm install 22

安装指定完整版本:

Terminal window
nvm install 22.12.0

查看当前 Node.js 和 npm 版本:

Terminal window
node -v
npm -v

切换 Node.js 版本

查看已经安装的版本:

Terminal window
nvm ls

切换到 Node 22:

Terminal window
nvm use 22

切换到 LTS:

Terminal window
nvm use --lts

如果某个版本还没安装,可以先安装再使用:

Terminal window
nvm install 22
nvm use 22

设置默认版本

如果希望每次打开终端都默认使用 Node 22:

Terminal window
nvm alias default 22

之后新终端会自动使用这个默认版本。

在项目中使用 .nvmrc

推荐在项目根目录放一个 .nvmrc 文件,写入项目需要的 Node 版本。例如当前项目要求 Node.js >=22.12.0,可以写:

22

进入项目后执行:

Terminal window
nvm use

nvm 会读取 .nvmrc 并切换到对应版本。如果本地还没有安装这个版本,可以执行:

Terminal window
nvm install

常用命令速查

Terminal window
nvm install --lts # 安装最新 LTS
nvm install 22 # 安装 Node 22
nvm use 22 # 切换到 Node 22
nvm ls # 查看本机已安装版本
nvm ls-remote # 查看可安装的远程版本
nvm alias default 22 # 设置默认版本
nvm uninstall 20 # 删除 Node 20

常见问题

nvm: command not found

通常是 shell 配置还没有加载。先重新打开终端;如果还不行,按自己的 shell 执行:

Terminal window
source ~/.bashrc

或:

Terminal window
source ~/.zshrc

也可以检查配置文件里是否有类似内容:

Terminal window
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

npm 全局包切换后不见了

不同 Node 版本有各自独立的全局包目录。切换版本后,如果需要全局工具,要重新安装:

Terminal window
npm install -g pnpm

项目构建提示 Node 版本不支持

先看项目的 package.json 里有没有 engines.node 要求。比如项目要求 >=22.12.0,就执行:

Terminal window
nvm install 22
nvm use 22
node -v

确认版本满足要求后,再重新安装依赖或执行构建命令:

Terminal window
npm install
npm run build

总结

nvm 的核心价值是把 Node.js 版本固定到项目维度:先安装 nvm,再安装项目需要的 Node.js 版本,并用 .nvmrc 记录团队统一版本。日常开发中优先执行 nvm use,可以减少因为 Node 版本不一致导致的安装、构建和运行问题。

如果你也在维护 Python 项目,可以对照 uv 安装和使用教程 理解“按项目固定运行时和依赖”的思路。nvm 的安装脚本和版本说明建议以 nvm 官方仓库 为准。