当前位置: 首页 > 科技观察

一个只有几行代码的库毁了数百万个项目

时间:2023-03-14 10:09:40 科技观察

一个只有几行代码的库毁了数百万个JS项目上周末,一个小型npm项目的更新让整个npm生态系统陷入混乱,影响数以百万计的JS项目。这个库是is-promise,它只包含几行代码。它的作用是让开发者测试一个JS对象是否是一个Promise。其他JS项目只需一行代码即可调用使用该库。尽管这个库只有几行代码,但它是最受欢迎的npm包之一,被超过340万个项目使用。周末发布了对is-promised的更新,结果导致其他使用该库的项目在构建时失败,因为它不符合正确的ES模块标准。该问题并没有使现有的JS项目崩溃,主要是无法编译新版本。许多著名的JS项目都受到影响,包括Facebook的CreateReactApp、谷歌的Angular.js框架、谷歌的Firebasse-tools、亚马逊的AWSServerlessCLI、Nuxt.js等等。难道程序员连代码都不会写吗?npm生态系统的依赖问题早在2016年就引发了类似事件,一位npm库开发者撤回了他的代码(代码不多,就几行),导致很多重量级应用(比如React和Babel)都出错了。四年前,此事曾引发热议。曾经有人质疑过:程序员难道连代码都不会写吗?比如有一个叫isArray的包,当时一天有88万次下载,2016年2月有1800万次下载,本身就一行代码。NPM生态系统中的许多开发人员似乎更愿意重用他人编写的代码,而不是编写自己的代码。这种方法存在严重的安全风险,因为广泛使用的软件包中的错误会影响您的代码,而您无法自行修复。