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

前言

前端日常开发中经常需要在多个 Node.js 版本间切换。

传统方案是使用 nvm,但它们需要额外安装和维护。

pnpm 作为流行的包管理器,内置了 pnpm env 命令,可以直接管理 Node.js 的安装与切换。

这样我们只需安装一个工具,就能同时管理包依赖和 Node 运行时版本。

后文

还是建议nvm管理Node,原因是pnpm管理的node默认没有npm和npx,很多环境或脚本会有问题,所以暂时不建议使用pnpm管理node。

卸载 nvm

在卸载 nvm 之前先清理它下载的所有 Node 版本,释放磁盘空间。

打开配置文件(以 zsh 为例):

1
vi ~/.zshrc

在文件中删除以下行:

1
2
3
4
5
6
# 使用 npmmirror
export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

保存并重新加载配置:

1
source ~/.zshrc

删除程序

1
rm -rf ~/.nvm

安装 pnpm

1
curl -fsSL https://get.pnpm.io/install.sh | sh -
1
2
3
4
5
6
7
8
# 1. 手动下载官方安装脚本
curl -fsSL https://get.pnpm.io/install.sh -o pnpm-install.sh

# 2. 使用 sed 命令将脚本中的 GitHub 地址替换为 ghproxy 加速镜像
sed -i '' 's|https://github.com/|https://ghproxy.net/https://github.com/|g' pnpm-install.sh

# 3. 执行本地修改后的脚本进行安装
sh pnpm-install.sh

验证

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

1
pnpm --version

配置路径

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

查看安装路径

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

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

自定义路径

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

1
2
3
4
# 设置全局目录
pnpm config set global-dir ~/tools/pnpm/global
# 设置全局 bin 目录
pnpm config set global-bin-dir ~/tools/pnpm/bin

配置 PATH

打开 Zsh 配置文件

1
open ~/.zshrc

添加

1
export PATH="/Users/psvmc/tools/pnpm/bin:$PATH"

保存并刷新

1
source ~/.zshrc

设置镜像

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

有些环境默认使用的npm或npx。

我们可以再安装

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

npx

npx的命令可以替换为pnpm

比如

1
npx hexo g

替换为

1
pnpm hexo g