在过去的几年里,ESLint 项目在规模和范围上都得到了增长。最初只是一个单一的可执行程序包,现在已经发展成为一个包含多个程序包的项目,包括多个解析器和其他实用程序。尽管项目有所发展,但团队规模却并没有随之增长,因此我们不得不做出一些艰难的决定,关于如何使用全志愿者团队继续维护整个 ESLint 项目。
ESLint 中当前的 JSDoc 支持
ESLint 中的 JSDoc 支持目前包括
- 维护 Doctrine JSDoc 注释解析器
require-jsdoc
规则valid-jsdoc
规则SourceCode#getJSDocComment()
方法
为了支持 ESLint 中的 JSDoc,我们一直在花费过多的时间维护 Doctrine 和 valid-jsdoc 规则
,而这与维护项目其余部分所需的工作量相比不成比例。从今天开始,这两个部分以及 require-jsdoc
规则和 SourceCode#getJSDocComment()
将结束生命周期。
生命周期结束意味着什么
核心 JSDoc 支持结束生命周期意味着您将在接下来的几周内看到以下情况发生
- Doctrine 将不再更新。两周前发布的 3.0.0 版本将是最后一个主要版本发布。在停止所有维护之前,我们可能需要进行一些小的更新,但我们不再会添加功能或修复错误。我们相信 Doctrine 处于一个稳定可靠的状态,如果有人想将其分叉以开始一个新项目,它将是一个很好的基础。
require-jsdoc
和valid-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 服务器。