📦
Tools & Internet Supply Chain & Quality Failure 2016 - 2016

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

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

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

See the patterns
No English translation for this case yet — showing the stored original.
Peak valuation

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

Final cost

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

Attribution votes

4,800 votes cast

Community output

1 plans · 1 insights

Sponsored
把你亲历的失败写进来

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

Root Causes Consensus Poll

Vote for the primary fatal error that caused this enterprise to collapse.

产品技术

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

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

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

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

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

1,326 votes (28%)
战略

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

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

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

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

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

821 votes (17%)