pnpm v10 现在默认阻止依赖生命周期脚本
关键更新
pnpm v10(稳定版)更改了默认的安装行为,使得在安装过程中定义的依赖生命周期脚本不再运行,除非明确允许(通过 pnpm.onlyBuiltDependencies、允许列表文件或批准构建)。这是一个故意的、破坏性的变化,旨在防止执行恶意 postinstall/preinstall 脚本的供应链攻击。(github.com)
重要性
这是一个具有直接操作影响的实际安全转变。使用 pnpm 的团队可能会发现依赖于构建/安装脚本的包(如 bcrypt、Prisma 引擎、esbuild、sqlite3 等)的 CI 和本地安装失败,因为这些脚本现在会被忽略,直到您批准它们。此更改减少了来自不受信任的依赖脚本的自动攻击面,但需要进行小规模迁移:要么使用新的 pnpm approve-builds 命令预先批准所需的包,要么将批准的名称添加到 pnpm.onlyBuiltDependencies(或使用由内部策略包提供的管理的 onlyBuiltDependenciesFile)。在 CI 中,您应该通过 packageManager 字段固定 pnpm 版本,预先填充允许列表(或运行确定性、非交互式的批准步骤),并在将更改推广到单一代码库之前进行端到端测试。对于无法立即采用允许列表的团队,pnpm 提供了一种通过配置 neverBuiltDependencies 恢复 v10 之前行为的方法,但依赖于此将放弃安全利益。总体而言,这是一个小的前期操作成本,能够有效增强安装抵御常见安装脚本供应链攻击的能力。(github.com)
来源
继续阅读
AWS CDK 将 CLI 与构造库分离(独立发布和新的 CLI 仓库)
2025年8月31日AWS 宣布 CDK CLI 和 CDK 构造库将独立发布,CLI 将迁移到一个新的仓库——这改变了您在 CI 中版本控制、安装和自动化 CDK 的方式。
Bun 添加 Bun.SQL — 一个零依赖的统一 SQL 客户端 (MySQL, PostgreSQL, SQLite)
2025年8月30日Bun v1.2.21 (2025年8月25日) 引入了 Bun.SQL:一个单一的、零依赖的 SQL 客户端,支持 MySQL/MariaDB (Zig 驱动)、PostgreSQL 和 SQLite,提供一致的标签模板 API。
pnpm 10.12 (v10.12.1) 添加了一个实验性的全局虚拟存储,用于近乎即时的本地安装
2025年8月29日pnpm 10.12 引入了一个中央的、图哈希的虚拟存储,允许多个项目重用精确的依赖图,显著加快了在温暖缓存上的本地安装速度,并改善了单体仓库的工作流程。