ESLint 2024 年度回顾

2024 年见证了 ESLint v9.0.0 的发布以及语言插件的引入。

2024 年的计划是发布 ESLint v9.0.0 的最终版本,然后开始开发语言插件,使 ESLint 能够正式 lint 非 JavaScript 语言。我们花了一年的时间开发这些插件,并在 2024 年底之前交付了所有插件以及一些有用的工具。

ESLint v9.0.0 和新配置系统的发布

ESLint v9.0.0 于 四月发布,默认启用了新的配置系统。这是自 2021 年 以来的第一个主要版本,我们在最初的几个月里遇到了困难,因为我们处理了与新配置系统相关的错误和投诉,以及 v9.0.0 中的其他更改。我们在上半年花费了大量时间更新文档,创建了一个 配置迁移工具 以简化过渡,以及 配置检查器 以帮助人们调试他们的新配置文件。

到 2024 年最后一个季度,情况开始稳定下来,我们重新开始改进配置系统,以解决用户报告的一些常见问题。

语言插件 API 的发布

迁移到新配置系统的一部分目的是通过创建 语言插件,使 ESLint 成为语言无关的工具。这涉及到大量的核心工作,将特定于 JavaScript 的功能移动到其自己的类中,这反过来又允许我们为其他语言换入类似的类。

最终,我们发布了 MarkdownJSON 的官方语言插件,以及 CSS 的原型。所有语言插件都允许您创建和分发针对特定语言 AST 运行的自定义规则。为了方便创建这些自定义规则,我们还引入了 代码浏览器

更新以支持最新的 ECMAScript 功能

与往年一样,团队花费了大量时间监控 JavaScript 标准化过程,以确保 ESLint 能够尽快更新以支持新的语法。2024 年,我们增加了对以下新的 JavaScript 功能的支持

这些功能不仅涉及到解析的更改,还涉及到处理正则表达式和模块的规则。

财务回顾

接下来的几节将深入探讨项目财务。所有这些信息均来自 Open Collective 交易列表,Tidelift 付款除外(从 Tidelift 直接检索)。由于交易在一整天内陆续发生,我们决定将 2024 年 1 月 1 日午夜 UTC 开始至 2024 年 12 月 31 日晚上 11:59 UTC 结束的交易视为我们的 2024 财年。

收入回顾

2024 Income Sources - Summarized in following table

2024 年期间,ESLint 从所有收入来源获得了 187,964.30 美元。您可以在下表中看到我们的收入来源细分。

来源 2024 年金额 2023 年金额 盈/亏百分比
Open Collective $122,996.60 $118,381.30 +3.90%
GitHub Sponsors $35,928.93 $25,190.89 +42.63%
Tidelift $18,449.16 $30,077.84 -38.66%
网站广告 $6,345.54 $6,380.89 -0.55%
Thanks.dev $4,234.09 $524.61 +707.09%
Threadless $9.98 $0.00 +100%
Stackaid.us $0.00 $91.00 -100%
总计 $187,964.30 $180,646.53 +4.05%

与往常一样,我们的大部分捐款来自 Open Collective。我们很高兴看到通过 Open Collective、GitHub Sponsors 和 Thanks.dev 收到的捐款与 2023 年相比有所增加。我们的网站广告收入基本持平,因为我们从 Carbon Ads 切换到 Ethical Ads 以增加广告收入。总体而言,网站广告仍然比 2023 年之前疲软得多,因此我们很高兴至少保持在相同的范围内。

今年一个不受欢迎的意外是 Tidelift 付款的急剧下降。我们在 2024 年初被告知 Tidelift 正在重新计算我们将收到的付款,因此我们在剩余月份的每月付款最终减少了一半。

这突显了赞助对于像 ESLint 这样的项目的重要性,因为像 Tidelift 这样的公司可以更改其付款计算方式,并极大地影响项目的健康状况。

顶级赞助商

2024 年,我们收到了许多公司的慷慨捐款,其中以 Automattic(24,000 美元)、Meta(20,000 美元)和 Airbnb(18,000 美元)为首。捐款 1,000 美元或以上的公司总计 139,302.42 美元,占我们总收入的 74%。

赞助商 2024 年捐款总额
Automattic $24,000.00
Meta Open Source $20,000.00
Airbnb $18,000.00
trunk.io $7,000.00
Salesforce $7,000.00
Liftoff $6,000.00
Chrome Frameworks Fund $6,000.00
Workleap $6,000.00
American Express $6,000.00
JetBrains $5,500.00
Cybozu $4,200.00
Canva $3,000.00
Sanity $2,400.00
Icons8 $2,400.00
Discord $2,400.00
Anagram Solver $2,400.00
Nx $2,400.00
HeroCoders $2,400.00
SERP Triumph $2,000.00
Principal Financial Group $1,800.00
(已编辑) $1,741.94
Nextbase Starter Kit $1,612.48
Ignition $1,600.00
Notion $1,400.00
Bitwarden $1,048.00
Siemens $1,000.00

注意: 已编辑的赞助商名称来自一个来源可疑的帐户,最终被 GitHub 阻止。但是,这笔钱最终确实进入了我们的帐户,因此我们将其包含在表格中以提高透明度。

费用回顾

2024 Expenses - Summarized in following table

2024 年,我们在 ESLint 项目上的总支出为 247,669.54 美元,而收入为 187,964.30 美元,净亏损为 -59,705.24 美元。费用包括日常维护和开发以及与项目相关的其他成本。有关概述,请参见下表。

类别 2024 年金额 2023 年金额 盈/亏百分比
维护和开发 $147,273.43 $66,910.37 +120.11%
TSC 津贴 (Tidelift) $18,449.16 $30,077.84 -38.66%
问题分流和支持 $3,985.50 $10,307.78 -61.34%
技术写作 $0.00 $8,155.00 -100.00%
贡献者池 $14,100.30 $4,500.00 +213.34%
支付处理器费用 $3,808.97 $2,854.51 +33.44%
健康保险 $12,698.40 $13,447.41 -5.57%
Open Source Collective 费用 $11,696.69 $9,206.88 +27.04%
生态系统/依赖项 $16,100.00 $24,400.00 -34.02%
eslint-community 管理 $9,825.03 $15,599.84 -37.02%
Google Workspace $182.06 $187.35 -2.82%
代码浏览器 $7,200.00 $0.00 +100%
配置检查器 $2,350.00 $0.00 +100%
总计 $247,669.54 $185,646.98 +33.41%

2024 年是 ESLint 在许多方面创纪录的一年。完成的工作量归功于不仅来自团队,而且来自外部贡献者的大量贡献。因此,我们的维护和开发成本今年飙升,我们的贡献者池成本也是如此,这是我们为外部贡献者对 ESLint 的重大贡献支付的费用。我们得到了额外的帮助来分流问题和 PR,这也导致了成本的增加。

我们是如何弥补收入和支出之间的差额的?ESLint 团队长期以来一直坚信建立至少一年的储备金,以便任何收入的突然中断都不会立即扰乱项目。在 2023 年之前,我们主要专注于错误修复、稳定性和跟上 JavaScript 语言的变化。在那段时间里,成本相对较低,因此我们的支出少于收入,以便积累储备金。从 2023 年开始,我们开始大幅改革 ESLint 项目,因此,那是我们第一年支出略高于收入的一年。2024 年加速了这些变化,因为更多的贡献导致了更高的成本。

支持我们的依赖项和生态系统

ESLint 致力于我们依赖项和整个 ESLint 生态系统的财务健康。作为这项承诺的一部分,我们向我们依赖的项目以及重要的 ESLint 相关项目捐款。(这在上表中列为“生态系统/依赖项”。)下表显示了我们在 2024 年捐款的项目。

项目 捐款
Ajv $1,800.00
debug $1,800.00
eslint-plugin-import $1,800.00
jsx-eslint $1,800.00
lint-staged $1,800.00
Rollup $1,800.00
Sindre Sorhus $1,800.00
typescript-eslint $1,800.00
WebdriverIO $1,100.00
Eleventy $600.00
总计 $16,100.00

展望 2025 年

现在 ESLint v9.0.0 和语言插件已发布,我们认为 ESLint 在可预见的未来拥有坚实的基础。我们将继续迭代新的配置系统,探索使其更直观和更易于使用的方法。我们的下一个重大步骤是 核心重写,旨在将我们现有的 API 分解为更小的部分,以便更容易混合和匹配。这将使 ESLint 在插件功能方面更灵活,并支持多种不同的运行时。

对于 ESLint 来说,2024 年是令人兴奋且充满挑战的一年,项目历史上发生了一些最 Dramatic 的变化。感谢您在过去一年中与我们分享的所有反馈,以及在我们完成此主要版本更改时的耐心。

我们还要感谢我们的赞助商,不仅是 2024 年,还有之前的几年,这使我们能够吸收近 60,000 美元的持续成本赤字。我们希望我们在 2024 年完成的所有工作表明,每一美元的赞助资金都用于造福 ESLint、其用户以及整个 ESLint 生态系统。

最新的 ESLint 新闻、案例研究、教程和资源。

Evolving flat config with extends
5 分钟阅读

使用 extends 改进扁平配置

您的 eslint.config.js 文件现在可以使用 extends 来简化您的配置。

ESLint v9.22.0 released
1 分钟阅读

ESLint v9.22.0 发布

我们刚刚推送了 ESLint v9.22.0,这是一个 ESLint 的次要版本升级。此版本添加了一些新功能并修复了先前版本中发现的几个错误。

ESLint v9.21.0 released
2 分钟阅读

ESLint v9.21.0 发布

我们刚刚推送了 ESLint v9.21.0,这是一个 ESLint 的次要版本升级。此版本添加了一些新功能并修复了先前版本中发现的几个错误。