ESLint v8.x 已于 2024年10月5日结束生命周期,不再维护。 升级 或考虑 长期支持选项

ESLint 内置 JSDoc 支持结束生命周期

作为最近一次审查的一部分,我们决定结束 ESLint 项目中内置 JSDoc 支持的生命周期。这篇文章包含了该决定的详细信息以及后续事项。

在过去的几年里,ESLint 项目在规模和范围上都得到了增长。最初只是一个单一的可执行程序包,现在已经发展成为一个包含多个程序包的项目,包括多个解析器和其他实用程序。尽管项目有所发展,但团队规模却并没有随之增长,因此我们不得不做出一些艰难的决定,关于如何使用全志愿者团队继续维护整个 ESLint 项目。

ESLint 中当前的 JSDoc 支持

ESLint 中的 JSDoc 支持目前包括

为了支持 ESLint 中的 JSDoc,我们一直在花费过多的时间维护 Doctrine 和 valid-jsdoc 规则,而这与维护项目其余部分所需的工作量相比不成比例。从今天开始,这两个部分以及 require-jsdoc 规则和 SourceCode#getJSDocComment() 将结束生命周期。

生命周期结束意味着什么

核心 JSDoc 支持结束生命周期意味着您将在接下来的几周内看到以下情况发生

  • Doctrine 将不再更新。两周前发布的 3.0.0 版本将是最后一个主要版本发布。在停止所有维护之前,我们可能需要进行一些小的更新,但我们不再会添加功能或修复错误。我们相信 Doctrine 处于一个稳定可靠的状态,如果有人想将其分叉以开始一个新项目,它将是一个很好的基础。
  • require-jsdocvalid-jsdoc 规则将被 弃用。这两个规则将保留在 ESLint 中,但我们不再会为它们添加新功能或修复错误。这些规则可能会在 ESLint 的未来主要版本中删除。
  • SourceCode#getJSDocComment() 方法将被弃用。我们不会对该方法进行任何更改,并将在 ESLint 的未来主要版本中将其删除。

请务必查看发布公告,了解这些更改生效的时间。

建议的替代方案

如果您想继续使用 ESLint 检查 JSDoc 注释,我们建议您使用社区支持的 eslint-plugin-jsdoc 插件。此插件包含一些比即将被弃用的核心 ESLint 规则更具体的规则,并且实际上可能更适合大多数项目。

常见问题

为什么不尝试为 Doctrine 寻找新的维护者?

我们决定不为 Doctrine 寻找新的维护者有几个原因。

首先,虽然该程序包被广泛使用,但来自团队外部的贡献却很少。虽然有些程序包从外部贡献者那里获得了大量关注,并且可能很容易找到新的维护者,但 Doctrine 并非如此。

其次,由于 Doctrine 是 JS 基金会的一部分,因此接管其维护意味着要参与基金会。如果单个维护者决定承担这项工作,这可能需要过多的开销。

在 npm 上每周有近 700 万次下载,对于现有用户来说,结束 Doctrine 项目的生命周期似乎是最佳选择,而不是尝试寻找新的维护者。我们认为,对于感兴趣的新维护者来说,一个更好的选择是分叉 Doctrine 并重新开始,而不是试图接管 Doctrine 已经存在的维护方式。

为什么保留 JSDoc 规则而不维护它们?

我们保留现有的 JSDoc 规则是为了给用户充足的时间过渡到使用 eslint-plugin-jsdoc。我们尽量减少要求用户更新其配置文件的次数,通过弃用现有的 JSDoc 规则同时保留它们可用,我们允许每个人进行逐步过渡,同时也能释放 ESLint 团队资源,以便他们能够专注于项目的其他部分。

如果还有其他问题?

打开一个 讨论 或访问我们的 Discord 服务器

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

ESLint v9.16.0 released
阅读 2 分钟

ESLint v9.16.0 发布

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

ESLint v9.15.0 released
阅读 2 分钟

ESLint v9.15.0 发布

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

ESLint v9.14.0 released
阅读 2 分钟

ESLint v9.14.0 发布

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