使用 pnpm env 管理 Node.js 版本
前言
前端日常开发中,我们经常需要在多个 Node.js 版本间切换。
传统方案是使用 nvm 或 nvm-windows,但它们需要额外安装和维护。
pnpm 作为流行的包管理器,内置了 pnpm env 命令,可以直接管理 Node.js 的安装与切换。
这样我们只需安装一个工具,就能同时管理包依赖和 Node 运行时版本。
安装 pnpm
pnpm 提供了多种安装方式,完全不需要先安装 npm。
使用独立安装脚本(推荐,无需 node/npm)
通过官方提供的独立脚本直接下载 pnpm 可执行文件。
Windows:
1 | winget install pnpm.pnpm |
Linux / macOS:
1 | curl -fsSL https://get.pnpm.io/install.sh | sh - |
使用系统包管理器
Windows 用户可以通过包管理器一键安装。
1 | # Winget(Windows 11 / 10 自带) |
macOS 用户:
1 | brew install pnpm |
使用 Corepack
如果你的系统已安装 Node.js 16.9 或以上版本,可以直接用 Corepack 启用 pnpm。
1 | corepack enable |
使用 npm(备选)
如果你已经有 npm,也可以通过它安装。
1 | npm install -g pnpm |
验证安装
安装后确认版本。
1 | pnpm --version |
配置安装路径
查看 Node 安装路径
pnpm 安装的 Node.js 默认存放在以下位置。
1 | C:\Users\用户名\AppData\Local\pnpm\nodejs\ |
可以通过以下命令查看当前使用的 Node 路径。
1 | # Windows |
自定义安装路径(可选)
如果希望将 Node 安装到其他位置,可以通过 global-dir 和 global-bin-dir 配置。
1 | # 设置全局目录到 D 盘 |
设置后再执行 pnpm env use --global 24,Node 就会被安装到自定义路径下。
配置全局 bin 目录
第一次使用 pnpm env use --global 时,可能遇到以下错误:
1 | [ERROR] The configured global bin directory "C:\Users\XXX\AppData\Local\pnpm\bin" is not in PATH |
这是因为 pnpm 的全局 bin 目录未添加到系统 PATH 中。
执行 pnpm setup 即可自动配置:
1 | pnpm setup |
完成后关闭当前终端并重新打开,再次执行命令即可正常使用。
管理 Node 版本
pnpm 提供了 pnpm env 子命令,功能类似于 nvm 的核心能力。
所有操作都在终端中完成,无需手动下载或配置环境变量。
安装指定版本的 Node
使用 pnpm env use 安装并激活一个特定版本的 Node.js。
1 | # 安装最新的 LTS 版本 |
--global 参数表示将该版本设置为系统全局的 Node.js 版本。
切换 Node 版本
再次调用 pnpm env use 即可切换到另一个版本。
pnpm 会自动下载并切换到目标版本。
1 | pnpm env use --global 24 |
查看已安装的版本
使用 pnpm env list 默认列出的是可安装的远程版本(类似 nvm 的 nvm ls-remote)。
需要加上 --installed 参数才能只看已安装的版本。
1 | pnpm env list --installed |
输出示例:
1 | Node.js 18.20.4 |
查看可安装的所有远程版本:
1 | pnpm env list --remote |
移除不再需要的版本
使用 pnpm env remove 删除指定的 Node 版本,释放磁盘空间。
1 | pnpm env remove 18.20.4 |
常用命令对比
以下表格对比 nvm 与 pnpm env 的常用操作,方便迁移。
| 操作 | nvm 命令 | pnpm env 命令 |
|---|---|---|
| 安装 LTS | nvm install --lts |
pnpm env use --global lts |
| 安装指定版本 | nvm install 18 |
pnpm env use --global 18 |
| 切换版本 | nvm use 18 |
pnpm env use --global 18 |
| 列出已安装版本 | nvm ls |
pnpm env list |
| 删除版本 | nvm uninstall 18 |
pnpm env remove 18 |
两者的命令语义非常接近,迁移成本很低。
卸载 nvm
确认 pnpm 能正常管理 Node 版本后,就可以卸载 nvm,避免两个工具互相干扰(PATH 冲突)。
Linux / macOS
nvm 通常是一个 shell 函数,卸载方式如下。
清理 ~/.bashrc、~/.zshrc 或 ~/.bash_profile 中与 nvm 相关的加载语句:
1 | # 删除或注释掉类似以下行 |
然后删除 nvm 目录:
1 | rm -rf "$NVM_DIR" |
Windows
如果使用 nvm-windows,通过控制面板卸载即可。
打开控制面板 → 程序和功能 → 找到 nvm-windows → 右键卸载。
然后检查系统环境变量中的 PATH,移除 nvm 相关路径(如 C:\Users\用户名\AppData\Roaming\nvm)。
验证
打开新终端,执行以下命令确认当前 Node 版本符合预期。
1 | node -v |
同时确认 pnpm 仍能正常使用。
1 | pnpm -v |
总结
pnpm 的 pnpm env 命令提供了一套轻量的 Node.js 版本管理方案。
对于已经使用 pnpm 的项目,不再需要额外安装 nvm,减少了工具的维护成本。
常用操作的命令习惯与 nvm 类似,上手几乎没有门槛。
如果你正在使用 pnpm,不妨尝试用它来管理 Node 版本。