📦
工具与互联网 供应链与品控失控 2016 - 2016

npm 撤销依赖事件 (left-pad):为什么一个小到只有十几行的包被删掉,会让大量项目当场构建失败?

在依赖树里,包的大小和它的影响范围没有关系

npm 撤销依赖事件 (left-pad):巅峰期全球最大的开源包管理平台,承载数百万个软件包,是前端与后端 JavaScript 生态的基础分发设施,几乎所有相关项目都依赖它;终局是一名开发者撤回自己发布的多个包,导致大量知名项目在构建时失败,整个生态在数小时内陷入连锁中断,平台随后紧急恢复并调整撤销规则。

不只看这一家
高峰估值

全球最大的开源包管理平台,承载数百万个软件包,是前端与后端 JavaScript 生态的基础分发设施,几乎所有相关项目都依赖它

终局损失

一名开发者撤回自己发布的多个包,导致大量知名项目在构建时失败,整个生态在数小时内陷入连锁中断,平台随后紧急恢复并调整撤销规则

归因投票

4,800 票参与

社区产出

1 方案 · 1 见解

推广
把你亲历的失败写进来

投稿会先进入待审,通过后才进入公开目录和站点地图。

核心败因全民归因公投

投票选择您认为导致该企业/项目最终死亡的最核心死穴,认同即可实时投票计入权重

产品技术

平台允许随时撤销已发布版本

已在生产环境中被广泛依赖的版本可以被单方面删除,缺少稳定性保证

1,579 票 (33%)
组织管理

依赖关系多为隐式且未锁定

项目未固定依赖版本,上游任何变动都会直接进入构建流程

1,326 票 (28%)
战略

关键依赖的集中度缺少评估

大量项目间接依赖同一个小包,风险高度集中却无人统计

1,074 票 (22%)
外部合规

开源维护关系缺少基本约定

发布者与使用者之间没有关于「已发布版本不可撤回」的规则共识

821 票 (17%)