只有2行代码的库,坑了数百万JS项目

共 805字,需浏览 2分钟

 ·

2020-04-30 23:21

(给前端大学加星标,提升前端技能.

综合整理:技术最前线(ID:TopITNews)

参考:solidot、ZDNet

6ef67654b8570aff076572c3196ef873.webp


上周末,一个 npm 小项目的更新给整个 npm 生态系统制造了一场混乱,影响到了数百万 JS 项目。这个库就是 is-promise ,仅包含了两行代码,其功能是让开发者测试一个 JS 对象是否是 Promise,其它 JS 项目可通过一行代码调用使用该库。


尽管这个库只有两行代码,但它却是最流行的 npm 包之一,被超过 340 万个项目使用。


f5c41719279d49f479b5c74e2de46e4b.webp


上周末 is-promised 释出了一个更新,结果由于它不符合正确的 ES 模块标准,导致使用该库的其它项目在构建时出错。问题并没有导致现有 JS 项目崩溃,而主要无法编译新版本。


许多知名的 JS 项目都受到影响,其中包括 Facebook 的 Create React App,Google 的 Angular.js 框架,Google 的 Firebasse-tools,亚马逊的 AWS Serverless CLI,Nuxt.js 等等。


e96bf1a3f422ade6423c188ba1604e8f.webp


npm 生态系统的依赖问题,早在 2016 年就引发过类似事件,有一个 NPM 库开发者撤回了他的代码(代码并不多,也就几行),导致诸多重量级应用(比如 React 和 Babel)都出问题了。


曾有人为此发出疑问:难道程序员连代码都不会写了吗?举例来说,一个叫 isArray 的软件包一天的下载量有88万,2016年2月有1800万次下载量,它本身就只有一行代码。


NPM 生态系统中的许多开发者,看起来宁愿复用其他人写好的代码而不是自己写。这种做法存在严重的安全隐患,因为一个被广泛使用的软件包存在bug,你的代码也会受到影响,而你却无法自己去修正。


注:对此你们怎么看?欢迎下方留言讨论...

分享前端好文,点亮 在看 5e83f1cb3cc455008848d4043113dd03.webp

浏览 24
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报