pnpm 10.14
· 一分钟阅读
增加了对 JavaScript 运行时安装的支持
在 devEngines.runtime (在 package.json中) 中声明 Node.js, Deno 或 Bun ,并让 pnpm 自动下载并固定它。
用法示例:
{
"devEngines": {
"runtime": {
"name": "node",
"version": "^24.4.0",
"onFail": "download" // we only support the "download" value for now
}
}
}
工作原理:
pnpm install将你指定的范围解析为最新的匹配运行时版本。- 精确的版本(和校验和)保存在锁文件(lockfile)中。
- 脚本使用本地运行时,确保跨环境的一致性。
为什么这样更好:
- 此新设置还支持 Deno 和 Bun(相比我们的仅限 Node 的设置
useNodeVersion和executionEnv.nodeVersion) - 支持版本范围(不仅仅是固定版本)。
- 解析后的版本与完整性校验和一起存储在 pnpm 锁文件中,以便将来验证 Node.js 内容的有效性。
- 它可以在任何工作区项目上使用 (就像
executionEnv.nodeVersion)。 因此,工作区中的不同项目可以使用不同的运行时。 - 目前,
devEngines.runtime设置将在本地安装运行时,我们将在 pnpm 的未来版本中通过在计算机上使用共享位置来改进它。
相关 PR:#9755。
其他新功能
- 向
pnpm install、pnpm add和pnpm dlx添加了--cpu、--libc和--os,以通过 CLI 自定义supportedArchitectures#7510。
Bug 修复
- Fix a bug in which
pnpm adddownloads packages whoselibcdiffer frompnpm.supportedArchitectures.libc. - The integrities of the downloaded Node.js artifacts are verified #9750.
- Allow
dlxto parse CLI flags and options between thedlxcommand and the command to run or between thedlxcommand and--#9719. pnpm install --prodshould removing hoisted dev dependencies #9782.- 修复导致本地 tarball 无法重新链接到虚拟存储的边缘情况错误。 当更改 tarball 的内容而不重命名文件并运行过滤安装时,就会发生此错误。
- 修复导致
pnpm install在更改具有对等依赖关系的本地 tarball 后错误地假定锁文件是最新的错误。