一台设备上如何使用多个 Node.js 版本

一台机器管理多个 Node 版本用 nvm:nvm install 22 / nvm install 24 安装多版本,nvm use 切换,nvm alias default 设默认。项目内可用 .nvmrc 声明版本,nvm-sh 需运行 nvm use 或配置自动切换 hook;精确锁定需完整版本号,Windows 用 nvm-windows。

最佳实践
文件、模块与依赖组织示意

用 nvm(Node Version Manager)就能在同一台设备上安装并切换任意多个 Node 版本:nvm install 22 和 nvm install 24 并存,nvm use 24 切换当前 shell 使用的版本,nvm alias default 24 设 nvm 初始化的新 shell 默认版本。在项目根目录放一个 .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    # 新终端默认用 24
nvm current             # 查看当前版本

项目级版本锁定:.nvmrc

echo "24" > .nvmrc
nvm use        # 读取 .nvmrc 自动切换

24 只是 major 选择器,不是精确版本锁定;要可复现须固定完整版本并让 CI 实际读取。engines 在 npm 中通常只是提示,强制与否取决于配置。

Windows 与备选方案

  • nvm-windows:nvm install 24.11.0 / nvm use 24.11.0,注意要用管理员权限的终端;
  • n:Linux/macOS 上更轻量的替代品,交互式切换;
  • volta / fnm:Rust 写的新一代管理器,可在正确安装 shim/shell hook 后按目录切版本,行为依工具配置;
  • Docker:每个项目用不同的 node:xx 镜像,隔离所选运行环境,但卷、网络、宿主内核与共享资源仍有边界。

常见问题(FAQ)

Q:切换版本后全局包要重装吗?

nvm-sh 下每个版本的 global node_modules 独立;nvm-windows 是不同实现,不要直接照搬 shell/切换行为。用 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 解释器路径。

参考资料

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台