pnpm self-update
将 pnpm 更新为最新版本或指定版本。
🌐 Updates pnpm to the latest version or the one specified.
pnpm self-update [<version>]
用法示例:
🌐 Usage examples:
pnpm self-update
pnpm self-update 10
pnpm self-update next-10
pnpm self-update 10.6.5
行为
🌐 Behavior
pnpm self-update 的行为取决于项目的上下文:
🌐 The behavior of pnpm self-update depends on the project context:
在一个固定 pnpm 版本的项目中
🌐 In a project that pins pnpm
当项目的 package.json 有一个 packageManager 字段设置为 pnpm(或有一个针对 pnpm 的 devEngines.packageManager 条目)时,self-update 仅会将 package.json 中固定的版本更新为解析后的版本。它不会在全局安装 pnpm。下次你运行 pnpm 命令时,pnpm 会自动下载并切换到指定版本。
🌐 When the project's package.json has a packageManager field set to pnpm (or a devEngines.packageManager entry for pnpm), self-update only updates the pinned version in package.json to the resolved one. It does not install pnpm globally. The next time you run a pnpm command, pnpm will automatically download and switch to the specified version.
在项目外(或当忽略 pnpm 固定时)
🌐 Outside a project (or when the pnpm pin is ignored)
如果项目没有固定 pnpm,或者通过 pmOnFail: ignore 忽略了固定,self-update 会在全局安装解析后的 pnpm 版本并将其链接到 PNPM_HOME,以便它成为你系统上活动的 pnpm 可执行文件。
🌐 If the project does not pin pnpm, or the pin is being ignored via pmOnFail: ignore, self-update installs the resolved pnpm version globally and links it to PNPM_HOME so it becomes the active pnpm binary on your system.
安装 pnpm v12(Rust 版本)
🌐 Installing pnpm v12 (the Rust port)
自 v11.10.0 起,pnpm self-update(以及 packageManager 版本切换)可以安装并链接 pnpm v12,即 Rust 版本。它以 pnpm 和 @pnpm/exe 名称发布在 next-12 dist-tag 上:
🌐 Since v11.10.0, pnpm self-update (and packageManager version-switching) can install and link pnpm v12, the Rust port. It is published under both the pnpm and @pnpm/exe names on the next-12 dist-tag:
pnpm self-update next-12
v12 将原生二进制文件作为 @pnpm/exe.<platform>-<arch> 包发布,pnpm 的内置安装程序会直接链接这些包。没有 Node.js 启动器,因此该命令不会产生 Node.js 启动成本。从 v12 开始,安装将汇聚到未加作用域的 pnpm 包(Rust 可执行文件),即使是从 SEA @pnpm/exe 构建更新时也是如此。