nvm 是 Node Version Manager 的缩写,用来在同一台机器上安装、切换和管理多个 Node.js 版本。对前端项目来说,它很实用:老项目可能需要 Node 18,新项目可能要求 Node 22,而 nvm 可以让这些版本共存。
适用环境
nvm 主要适用于 macOS、Linux 和 WSL。Windows 原生环境通常使用 nvm-windows,它和这里介绍的 nvm-sh/nvm 不是同一个项目。
安装前建议确认系统里有 curl 或 wget:
curl --version
或者:
wget --version
安装 nvm
官方推荐通过安装脚本安装。使用 curl:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.5/install.sh | bash
或者使用 wget:
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.5/install.sh | bash
安装脚本会把 nvm 下载到用户目录,并尝试把初始化脚本写入当前 shell 的配置文件,比如 ~/.bashrc、~/.zshrc、~/.profile。
安装完成后,关闭并重新打开终端,或者手动加载配置:
source ~/.bashrc
如果你用的是 zsh:
source ~/.zshrc
验证安装结果:
command -v nvm
如果输出 nvm,说明已经安装成功。
安装 Node.js
安装最新 LTS 版本:
nvm install --lts
安装指定大版本:
nvm install 22
安装指定完整版本:
nvm install 22.12.0
查看当前 Node.js 和 npm 版本:
node -v
npm -v
切换 Node.js 版本
查看已经安装的版本:
nvm ls
切换到 Node 22:
nvm use 22
切换到 LTS:
nvm use --lts
如果某个版本还没安装,可以先安装再使用:
nvm install 22
nvm use 22
设置默认版本
如果希望每次打开终端都默认使用 Node 22:
nvm alias default 22
之后新终端会自动使用这个默认版本。
在项目中使用 .nvmrc
推荐在项目根目录放一个 .nvmrc 文件,写入项目需要的 Node 版本。例如当前项目要求 Node.js >=22.12.0,可以写:
22
进入项目后执行:
nvm use
nvm 会读取 .nvmrc 并切换到对应版本。如果本地还没有安装这个版本,可以执行:
nvm install
常用命令速查
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 执行:
source ~/.bashrc
或:
source ~/.zshrc
也可以检查配置文件里是否有类似内容:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
npm 全局包切换后不见了
不同 Node 版本有各自独立的全局包目录。切换版本后,如果需要全局工具,要重新安装:
npm install -g pnpm
项目构建提示 Node 版本不支持
先看项目的 package.json 里有没有 engines.node 要求。比如项目要求 >=22.12.0,就执行:
nvm install 22
nvm use 22
node -v
确认版本满足要求后,再重新安装依赖或执行构建命令:
npm install
npm run build