pnpm 10.26
· 一分钟阅读
pnpm 10.26 为 git 托管的依赖项引入了更严格的安全默认值,添加了 allowBuilds 以实现细粒度的脚本权限,并包含了一个新设置来阻止特殊的传递依赖项。
次要更改
更严格的 Git 依赖安全
半破坏性更改。 现在,除非在 onlyBuiltDependencies(或 allowBuilds)中明确允许,否则 Git 托管的依赖项将无法在安装期间运行 prepare 脚本 #10288。 此项更改可防止从不受信任的 Git 仓库执行恶意代码。
allowBuilds
新增了一个名为 allowBuilds 的新设置,提供了灵活管理构建脚本的方式。 它接受一个包匹配器映射,以明确允许(true)或禁止(false)脚本执行。 这将取代 onlyBuiltDependencies 和 ignoredBuiltDependencies,成为首选配置方法 #10311。
示例:
allowBuilds:
esbuild: true
core-js: false
nx@21.6.4 || 21.6.5: true
blockExoticSubdeps
新增了 blockExoticSubdeps 设置,以提高供应链安全性。 当设置为 true 时,它会阻止在过渡依赖中解析异常协议 (如 git+ssh: 或直接的 https://: tarball)。 只有直接依赖项才允许使用特殊来源 #10265。
HTTP Tarball 的完整性哈希
半破坏性更新。 pnpm 现在会在获取 HTTP tarball 依赖项时计算其完整性哈希值,并将其存储在 lockfile 中。 这将确保服务器在随后安装时无法在没有检测到的情况下提供被更改的内容 #10287。
pnpm pack --dry-run
为 pack 命令添加了对 --dry-run 的支持。 这样,你就可以在不实际创建 tarball 的情况下验证哪些文件将包含在 tarball 中 #10301。
