2023 年度 npm 回顾

Socket 发文对包管理器 npm 在 2023 年的表现进行了回顾。主要聚焦于生态系统中的一些主要趋势、npm 在过去一年中的发展情况,以及深入探讨 npm 在这一年中所面临的一些恶意软件和垃圾邮件问题等等。

Socket 是一家提供扫描工具来检测开源代码中安全漏洞的初创公司,旨在保护应用程序免受潜伏在开源供应链中的恶意依赖项的影响。

文中指出,截至 2023 年底,Socket 已经从 npm 注册表中摄取了来自近 90 万个维护者的近 40 万个软件包。npm 的官方统计数据则显示,到 2023 年底,实时包数量超过 250 万个,每月下载量超过 1840 亿次。250 万和 400 万的数据差异表明,许多软件包最终都会从平台中删除。

在 npm 上发布软件包不需要走审查流程,因此操作起来十分简单;也正因此,npm 注册表拥有一个“比其他语言生态系统存在更多恶意软件包”的名声。但 Socket 指出,根据其在 Python 生态系统中的一些发现表明,有关 npm 的这一认知并不完全正确。

数据显示,2023 年 npm 注册表共发布了 10,518,566 个软件包版本,还有 1,241,583 个未发布版本。其中 3 月和 4 月更新的软件包最多,可能是源于 2023 年 3 月和 4 月发生的大规模以 John Wick 为主题的垃圾邮件和网络钓鱼活动。

2023 年共新增了 165,486 个维护者,按照这一增长速度,预计将在 2024 年突破 100 万软件包维护者大关。

Socket还统计了发布和使用最多的软件包类型,并按依赖包的数量显示了排名前 50 的 npm 软件包:

一个明显的现象是,TypeScript 已经变得非常流行。排在第二位的是React,这一结果也并不令人意外;因为它拥有庞大的组件生态系统,且在生态系统中占据主导地位。榜单中唯一的前端库是 Vue.js,Angular (@angular/core) 则出现在第 62 位。

按照每周下载量来计算,排名前 20 的 npm 软件包有:

其中,多产的开源开发者和维护者 Sindre Sorhus 在此榜单中占有重要地位,榜单中一半的软件包都与其有关。

从 2023 年首次发布的软件包角度看,Top 20 结果如下:

值得一提的是,Socket AI 扫描了 npm 软件包内的数百万个文件发现,2023 年有五千多个软件包被识别为恶意软件,不过这些软件包已经被删除。除了恶意软件的增加之外,npm 还面临多次垃圾邮件活动。

还有一些有趣的发现包括:

更多详情可查看官方博客。