pnpm 10.21

增加了为依赖项安装 Node.js 运行时的支持,以及配置信任策略的设置。

次要更改#

为依赖项安装 Node.js 运行时#

增加了为依赖项自动安装 Node.js 运行时的支持。如果依赖项在 engines.runtime 字段中声明了 Node.js 运行时,pnpm 现在将安装依赖项所需的 Node.js 版本。例如:

{
"engines": {
  "runtime": {
    "name": "node",
    "version": "^24.11.0",
    "onFail": "download"
  }
}
}

如果依赖 Node.js 运行时的包是一个 CLI 应用程序,pnpm 会将该 CLI 应用程序绑定到所需的 Node.js 版本。这样可以确保,无论全局安装的 Node.js 实例是什么,CLI 都将使用兼容版本的 Node.js。

如果软件包包含 postinstall 脚本,则该脚本将使用指定的 Node.js 版本执行。

相关 PR:#10141

信任政策#

添加了一个新设置:trustPolicy。

当设置为 no-downgrade 时,如果软件包的信任级别与以前的版本相比有所下降,pnpm 将失败。例如,如果一个软件包之前是由受信任的发布者发布的,但现在只有来源信息而没有信任证明,则安装将会失败。这有助于防止安装可能已被入侵的版本。

相关问题: #8889。

其他功能#

  • 添加了对 pnpm config get globalconfig 的支持,用于检索全局配置文件路径 #9977。

补丁更改#

  • 当用户对未直接列在 package.json 中的依赖项运行 pnpm update 时,任何直接依赖项都不应该更新 #10155。
  • 当两个 pnpm 进程同时将目录内容硬链接到同一目标时,不要崩溃 #10160。
  • 通过 pnpm-workspace.yaml 设置 gitBranchLockfile 和相关设置应该可以工作 #9651。