使用 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
2
3
4
5
6
7
8
# Winget(Windows 11 / 10 自带)
winget install pnpm.pnpm

# Scoop
scoop install pnpm

# Chocolatey
choco install pnpm

macOS 用户:

1
brew install pnpm

使用 Corepack

如果你的系统已安装 Node.js 16.9 或以上版本,可以直接用 Corepack 启用 pnpm。

1
2
corepack enable
corepack prepare pnpm@latest --activate

使用 npm(备选)

如果你已经有 npm,也可以通过它安装。

1
npm install -g pnpm

验证安装

安装后确认版本。

1
pnpm --version

配置安装路径

查看 Node 安装路径

pnpm 安装的 Node.js 默认存放在以下位置。

1
C:\Users\用户名\AppData\Local\pnpm\nodejs\

可以通过以下命令查看当前使用的 Node 路径。

1
2
3
4
5
6
# Windows
where node

# 查看 pnpm 全局 bin 目录
pnpm config get global-dir
pnpm config get global-bin-dir

自定义安装路径(可选)

如果希望将 Node 安装到其他位置,可以通过 global-dirglobal-bin-dir 配置。

1
2
3
4
5
# 设置全局目录到 D 盘
pnpm config set global-dir D:\Tools\pnpm\global

# 设置全局 bin 目录
pnpm config set global-bin-dir D:\Tools\pnpm\bin

设置后再执行 pnpm env use --global 24,Node 就会被安装到自定义路径下。

配置全局 bin 目录

第一次使用 pnpm env use --global 时,可能遇到以下错误:

1
2
[ERROR] The configured global bin directory "C:\Users\XXX\AppData\Local\pnpm\bin" is not in PATH
Run "pnpm setup" to update your shell configuration.

这是因为 pnpm 的全局 bin 目录未添加到系统 PATH 中。
执行 pnpm setup 即可自动配置:

1
pnpm setup

完成后关闭当前终端并重新打开,再次执行命令即可正常使用。

管理 Node 版本

pnpm 提供了 pnpm env 子命令,功能类似于 nvm 的核心能力。
所有操作都在终端中完成,无需手动下载或配置环境变量。

安装指定版本的 Node

使用 pnpm env use 安装并激活一个特定版本的 Node.js。

1
2
3
4
5
6
7
8
# 安装最新的 LTS 版本
pnpm env use --global lts

# 安装指定大版本的最新版
pnpm env use --global 24

# 安装精确版本
pnpm env use --global 20.12.2

--global 参数表示将该版本设置为系统全局的 Node.js 版本。

切换 Node 版本

再次调用 pnpm env use 即可切换到另一个版本。
pnpm 会自动下载并切换到目标版本。

1
2
pnpm env use --global 24
pnpm env use --global 18

查看已安装的版本

使用 pnpm env list 默认列出的是可安装的远程版本(类似 nvm 的 nvm ls-remote)。
需要加上 --installed 参数才能只看已安装的版本。

1
pnpm env list --installed

输出示例:

1
2
Node.js 18.20.4
Node.js 20.12.2

查看可安装的所有远程版本:

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
2
3
# 删除或注释掉类似以下行
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

然后删除 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 版本。