跳到主内容

pnpm 10.21

· 一分钟阅读
Zoltan Kochan
pnpm 的首席维护者

增加了为依赖项安装 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