系列:开发环境管理
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 -vnpm -v切换 Node.js 版本
查看已经安装的版本:
nvm ls切换到 Node 22:
nvm use 22切换到 LTS:
nvm use --lts如果某个版本还没安装,可以先安装再使用:
nvm install 22nvm use 22设置默认版本
如果希望每次打开终端都默认使用 Node 22:
nvm alias default 22之后新终端会自动使用这个默认版本。
在项目中使用 .nvmrc
推荐在项目根目录放一个 .nvmrc 文件,写入项目需要的 Node 版本。例如当前项目要求 Node.js >=22.12.0,可以写:
22进入项目后执行:
nvm usenvm 会读取 .nvmrc 并切换到对应版本。如果本地还没有安装这个版本,可以执行:
nvm install常用命令速查
nvm install --lts # 安装最新 LTSnvm install 22 # 安装 Node 22nvm use 22 # 切换到 Node 22nvm 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 22nvm use 22node -v确认版本满足要求后,再重新安装依赖或执行构建命令:
npm installnpm run build总结
nvm 的核心价值是把 Node.js 版本固定到项目维度:先安装 nvm,再安装项目需要的 Node.js 版本,并用 .nvmrc 记录团队统一版本。日常开发中优先执行 nvm use,可以减少因为 Node 版本不一致导致的安装、构建和运行问题。
如果你也在维护 Python 项目,可以对照 uv 安装和使用教程 理解“按项目固定运行时和依赖”的思路。nvm 的安装脚本和版本说明建议以 nvm 官方仓库 为准。