官方提供了不下载 Node.js 的前提下下载 pnpm 的方案,同时也提供了基于 pnpm 下载和管理 Node.js 版本的方案。
通过 pnpm 下载和使用 Node.js 的命令如下:
pnpm env use lts -g
执行之后,结果如下所示:
Node.js 16.16.0 is activated
C:\\Users\\kciga\\AppData\\Local\\pnpm\\node.exe -> C:\\Users\\kciga\\AppData\\Local\\pnpm\\nodejs\\16.16.0\\node.exe
但实际上,如果你本机已经在用 nvm 管理 Node.js 版本的话,pnpm 的管理并不会生效,全局 Node.js 版本仍然以 nvm 设置的为准,但二者下载的 Node.js 也并不冲突。
Using pnpm as a Node.js version manager · Discussion #3434 · pnpm/pnpm
Using pnpm as a Node.js version manager · Discussion #3434 · pnpm/pnpm
在以上关于使用 pnpm 作为 Node.js version manager 的讨论中,pnpm 作者提到一句话,我认为是比较合理的实践方式:
The Node.js that runs pnpm is only used by pnpm. The scripts of the installed packages use the globally installed Node.js or the one specified using the
use-node-version
setting.
Node.js 全局版本仍然使用 nvm 或其它方式管理,package.json
scripts 的执行环境,由 .npmrc
中定义的 use-node-version
决定。