使用 pnpm env 管理 Node.js 版本(Win)

前言

前端日常开发中经常需要在多个 Node.js 版本间切换。
传统方案是使用 nvm 或 nvm-windows,但它们需要额外安装和维护。
pnpm 作为流行的包管理器,内置了 pnpm env 命令,可以直接管理 Node.js 的安装与切换。
这样我们只需安装一个工具,就能同时管理包依赖和 Node 运行时版本。

卸载 nvm

在卸载 nvm 之前先清理它下载的所有 Node 版本,释放磁盘空间。
这是为了避免残留文件占据空间,同时也确保切换后不会发生 PATH 冲突。

先获取安装位置,然后手动删除:

1
2
echo %NVM_HOME%
echo %NVM_SYMLINK%

卸载应用

安装 pnpm

pnpm 提供了多种安装方式,完全不需要先安装 npm。
以下按推荐优先级列出各方式。

安装

通过官方提供的独立脚本直接下载 pnpm 可执行文件。

Windows 使用包管理器安装:

Using PowerShell:

1
Invoke-WebRequest https://get.pnpm.io/install.ps1 -UseBasicParsing | Invoke-Expression

添加 Microsoft Defender 例外名单:

1
Add-MpPreference -ExclusionPath $(pnpm store path)

验证

安装后执行以下命令确认版本:

1
pnpm --version

配置路径

pnpm 安装的 Node.js 默认存放位置以及自定义配置方法。
这部分根据实际需要选择性操作。

查看安装路径

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

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

使用以下命令查看当前使用的 Node 路径和 pnpm 全局目录:

1
2
3
4
5
# 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
# 设置全局目录到 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 就会被安装到自定义路径下。

配置 PATH

第一次使用 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 中。
执行以下命令即可自动配置:

1
pnpm setup

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

如果报错,可以自行把global-bin-dir添加到环境变量Path中。

设置镜像

1
pnpm config set registry https://registry.npmmirror.com

获取

1
pnpm config get registry

管理 Node 版本

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

安装与切换

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

1
2
3
4
5
6
# 安装最新的 LTS 版本
pnpm env use --global lts
# 安装指定大版本的最新版
pnpm env use --global 24
# 安装精确版本
pnpm env use --global 20.12.2

--global 参数表示将该版本设置为系统全局的 Node.js 版本。
再次调用即可切换到另一个版本,pnpm 会自动下载并切换:

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

安装npm

pnpm安装的NodeJS默认没有npx和npm

我们可以再安装

1
pnpm install -g npm

这时候就有npm了

1
2
npm -v
npx -v

设置镜像

1
npm config set registry https://registry.npmmirror.com

验证

打开新终端执行以下命令,确认当前 Node 版本符合预期:

1
node -v

同时确认 pnpm 仍能正常使用:

1
pnpm -v