使用 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 | # 使用 npmmirror |
保存并重新加载配置:
1 | source ~/.zshrc |
删除程序
1 | rm -rf ~/.nvm |
安装 pnpm
1 | curl -fsSL https://get.pnpm.io/install.sh | sh - |
1 | # 1. 手动下载官方安装脚本 |
验证
安装后执行以下命令确认版本:
1 | pnpm --version |
配置路径
pnpm 安装的 Node.js 默认存放位置以及自定义配置方法。
这部分根据实际需要选择性操作。
查看安装路径
使用以下命令查看当前使用的 Node 路径和 pnpm 全局目录:
1 | # 查看 pnpm 全局 bin 目录 |
自定义路径
如果希望将 Node 安装到其他位置,通过 global-dir 和 global-bin-dir 配置:
1 | # 设置全局目录 |
配置 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 | # 安装最新的 LTS 版本 |
--global 参数表示将该版本设置为系统全局的 Node.js 版本。
再次调用即可切换到另一个版本,pnpm 会自动下载并切换:
1 | pnpm env use --global 24 |
安装npm
pnpm安装的NodeJS默认没有npx和npm
有些环境默认使用的npm或npx。
我们可以再安装
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 |
npx
npx的命令可以替换为pnpm
比如
1 | npx hexo g |
替换为
1 | pnpm hexo g |