使用 pnpm env 管理 Node.js 版本(Win)
前言
前端日常开发中经常需要在多个 Node.js 版本间切换。
传统方案是使用 nvm 或 nvm-windows,但它们需要额外安装和维护。
pnpm 作为流行的包管理器,内置了 pnpm env 命令,可以直接管理 Node.js 的安装与切换。
这样我们只需安装一个工具,就能同时管理包依赖和 Node 运行时版本。
卸载 nvm
在卸载 nvm 之前先清理它下载的所有 Node 版本,释放磁盘空间。
这是为了避免残留文件占据空间,同时也确保切换后不会发生 PATH 冲突。
先获取安装位置,然后手动删除:
1 | echo %NVM_HOME% |
卸载应用
安装 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 | # Windows |
自定义路径
如果希望将 Node 安装到其他位置,通过 global-dir 和 global-bin-dir 配置:
1 | # 设置全局目录到 D 盘 |
设置后再执行 pnpm env use --global 24,Node 就会被安装到自定义路径下。
配置 PATH
第一次使用 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 中。
执行以下命令即可自动配置:
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 | # 安装最新的 LTS 版本 |
--global 参数表示将该版本设置为系统全局的 Node.js 版本。
再次调用即可切换到另一个版本,pnpm 会自动下载并切换:
1 | pnpm env use --global 24 |
安装npm
pnpm安装的NodeJS默认没有npx和npm
我们可以再安装
1 | pnpm install -g npm |
这时候就有npm了
1 | npm -v |
设置镜像
1 | npm config set registry https://registry.npmmirror.com |
验证
打开新终端执行以下命令,确认当前 Node 版本符合预期:
1 | node -v |
同时确认 pnpm 仍能正常使用:
1 | pnpm -v |