一台设备上如何使用多个 Node.js 版本
一台机器管理多个 Node 版本用 nvm:nvm install 22 / nvm install 24 安装多版本,nvm use 切换,nvm alias default 设默认。项目内可用 .nvmrc 文件自动锁定版本,Windows 用 nvm-windows。
用 nvm(Node Version Manager)就能在同一台设备上安装并切换任意多个 Node 版本:nvm install 22 和 nvm install 24 并存,nvm use 24 切换当前 shell 使用的版本,nvm alias default 24 设全局默认。在项目根目录放一个 .nvmrc 文件(内容如 24),进入目录后 nvm use 即可自动切到项目要求的版本。
nvm 常用命令
nvm install 22 # 装 Node 22 最新小版本
nvm install --lts # 装最新 LTS
nvm ls # 列出本机已装版本
nvm ls-remote # 列出可安装的远程版本
nvm use 22 # 当前 shell 切到 22
nvm alias default 24 # 新终端默认用 20
nvm current # 查看当前版本
项目级版本锁定:.nvmrc
echo "24" > .nvmrc
nvm use # 读取 .nvmrc 自动切换
团队成员和 CI 都靠这个文件对齐版本。配合 package.json 的 engines 字段可以更严格地约束。
Windows 与备选方案
- nvm-windows:
nvm install 24.11.0/nvm use 24.11.0,注意要用管理员权限的终端; - n:Linux/macOS 上更轻量的替代品,交互式切换;
- volta / fnm:Rust 写的新一代管理器,进入目录自动切版本(无需手动
nvm use),速度更快; - Docker:每个项目用不同的
node:xx镜像,彻底隔离。
常见问题(FAQ)
Q:切换版本后全局包要重装吗?
nvm 下每个版本的 global node_modules 独立。用 nvm install 24 --reinstall-packages-from=18 可以从旧版本迁移全局包。
Q:nvm use 只影响当前终端吗?
是的,只改当前 shell 的 PATH。想让所有新终端默认用某版本,必须 nvm alias default <版本>。
Q:IDE 里终端版本不对怎么办?
IDE 启动的终端会重新加载 shell 配置,确认 nvm 初始化脚本写在 ~/.bashrc 或 ~/.zshrc 中,并重启 IDE;部分 IDE 还需在项目设置里手动指定 Node 解释器路径。