包管理器的依赖解析为何如此困难:从NP完全问题到SAT求解器的二十年算法博弈

2016年3月22日,一个名为Azer Koçulu的程序员删除了他在npm上发布的273个包。其中一个叫left-pad的包只有11行代码,功能简单到令人发指——在字符串左侧填充空格。然而,这个微不足道的包被Babel、React、Webpack等数千个项目依赖。几小时内,全球JavaScript开发者的构建流水线开始大规模崩溃,Facebook、PayPal、Netflix、Spotify等公司的开发团队陷入混乱。 ...

12 min · 5661 words