一个 npm 小项目的更新给整个 npm 生态系统制造了一场混乱,影响到了数百万 JS 项目。名叫 is-promise 的库包含了两行代码,其它项目可通过一行代码调用使用该库。它的功能是让开发者测试一个 JS 对象是否是 Promise。 尽管这个库只有两行代码,但它却是最流行的 npm 包之一,被超过 340 万个项目使用。 上周末 is-promised 释出了一个更新,结果由于它不符合正确的 ES 模块标准,导致使用该库的其它项目在构建时出错。问题并没有导致现有 JS 项目崩溃,而主要无法编译新版本。 许多知名的 JS 项目都受到影响,其中包括 Facebook 的 Create React App,Google 的 Angular.js 框架,Google 的 Firebasse-tools,亚马逊的 AWS Serverless CLI,Nuxt.js 等等。npm 生态系统的依赖问题早在 2016 年就引发过广泛关注。 |