Skip to main content

pnpm 10.30

· One min read
Zoltan Kochan
Lead maintainer of pnpm

pnpm 10.30 重新设计了 pnpm why,以显示反向依赖树,使得理解为什么安装某个包变得更容易。

🌐 pnpm 10.30 redesigns pnpm why to show a reverse dependency tree, making it much easier to understand why a package is installed.

pnpm 10.29

· 3 min read
Zoltan Kochan
Lead maintainer of pnpm

pnpm 10.29 为 pnpm dlx 添加了 catalog: 协议支持,允许在 pnpm-workspace.yaml 中配置 auditLevel,支持一个裸露的 workspace: 指定符,并包含若干错误修复。

🌐 pnpm 10.29 adds catalog: protocol support to pnpm dlx, allows configuring auditLevel in pnpm-workspace.yaml, supports a bare workspace: specifier, and includes several bug fixes.

pnpm 10.28

· 3 min read
Zoltan Kochan
Lead maintainer of pnpm

pnpm 10.28 引入了一个新的 beforePacking 钩子,用于在发布时自定义 package.json,提升了过滤安装的性能,并包含若干错误修复。

🌐 pnpm 10.28 introduces a new beforePacking hook to customize package.json at publish time, improves filtered install performance, and includes several bug fixes.

pnpm 10.27

· 3 min read
Zoltan Kochan
Lead maintainer of pnpm

pnpm 10.27 添加了一个新设置,用于忽略较旧包版本的信任策略检查,引入了用于全局虚拟存储修剪的项目注册表,并包含了多个错误修复。

🌐 pnpm 10.27 adds a new setting to ignore trust policy checks for older package versions, introduces a project registry for global virtual store pruning, and includes several bug fixes.

🚀 2025 年的 pnpm

· 9 min read
Zoltan Kochan
Lead maintainer of pnpm

2025 年对于 pnpm 来说是一个变革之年。虽然我们的主要关注点是重新定义包管理的安全模型,但我们也在性能和开发者体验方面取得了重大改进。

从默认阻止生命周期脚本到引入全局虚拟存储,这里回顾一下 2025 年发布的主要功能。

🌐 From blocking lifecycle scripts by default to introducing a global virtual store, here is a look back at the major features shipped in 2025.

pnpm 10.26

· 3 min read
Zoltan Kochan
Lead maintainer of pnpm

pnpm 10.26 为托管在 git 上的依赖引入了更严格的安全默认设置,添加了 allowBuilds 用于细粒度的脚本权限,并包含一个用于阻止异常传递依赖的新设置。

🌐 pnpm 10.26 introduces stricter security defaults for git-hosted dependencies, adds allowBuilds for granular script permissions, and includes a new setting to block exotic transitive dependencies.

pnpm 10.25

· 2 min read
Zoltan Kochan
Lead maintainer of pnpm

pnpm 10.25 改进了证书处理,添加了一个裸 pnpm init,并提供了若干提高使用体验的修复。

🌐 pnpm 10.25 improves certificate handling, adds a bare pnpm init, and ships several quality-of-life fixes.

我们如何保护我们的新闻编辑部免受 npm 供应链攻击

· 21 min read
Ryan Sobol
Principal Software Engineer at the Seattle Times

我们在沙伊-胡卢德 2.0 上很幸运。

🌐 We got lucky with Shai-Hulud 2.0.

在2025年11月,一个自我复制的 npm 蠕虫攻击了796个软件包,这些软件包每月下载量达1.32亿次。该攻击利用 preinstall 脚本来窃取凭据、安装持久后门,并在某些情况下清除整个开发者环境。我们没有受到影响——并不是因为我们有强大的防御能力,而是因为在攻击期间我们没有运行 npm installnpm update

🌐 In November 2025, a self-replicating npm worm compromised 796 packages with 132 million monthly downloads. The attack used preinstall scripts to steal credentials, install persistent backdoors, and in some cases wipe entire developer environments. We weren't affected—not because we had robust defenses, but because we didn't run npm install or npm update during the attack window.

运气不是一种安全策略。

🌐 Luck isn't a security strategy.

pnpm 10.24

· 2 min read
Zoltan Kochan
Lead maintainer of pnpm

pnpm 现在可以在高核心机器上自动扩展网络并发,并提供多个可靠性修复。

🌐 pnpm now scales network concurrency automatically on high-core machines and ships several reliability fixes.

pnpm 10.23

· 2 min read
Zoltan Kochan
Lead maintainer of pnpm

pnpm list 添加了 --lockfile-only 选项,并对 pnpm self-update 进行了各种改进。

🌐 Added --lockfile-only option to pnpm list and various improvements to pnpm self-update.