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

规则策略变更

我们最近对规则策略进行了一些更改,我们很高兴与您分享。

ESLint 最初创建时,其理念是提供一组 20-30 个核心规则,帮助每个人入门,然后让社区构建自己的规则以填补任何剩余的空白。然而,我们确实继续实施核心规则,因为它似乎对团队的投入时间占很大一部分,到今天为止,已经有了 280 个核心规则。

ESLint 现在受益于蓬勃发展的以规则为中心的插件生态系统,例如 eslint-plugin-nodeeslint-plugin-importeslint-plugin-react 等等。像 astexplorer.net 这样的工具以及众多教程,使开发人员比以往任何时候都更容易编写自己的规则。核心团队不再需要构建大量基本规则,因此我们可以优先考虑对整个社区有益的期待已久的核心功能,例如并行 linting。我们正在对如何优先处理内置规则的更改进行一些更改,但与往常一样,如果某个规则不适合您的情况,我们鼓励您将其作为自定义规则进行修改以供您自己的项目使用,并与社区中的其他人分享。

这些变化是什么?

展望未来,我们正在对如何处理规则问题和拉取请求做出以下更改

  • 新规则有限制 - 我们只会在新规则与过去 12 个月内达到阶段 4 的新 ECMAScript 功能相关时才接受新规则。社区依靠 ESLint 来帮助他们学习使用新语言功能的正确方法,我们希望继续这样做。我们不会接受与新 ECMAScript 功能无关的建议或偏好。
  • 不再添加只禁止语法的规则 - 我们已经有了 no-restricted-syntax,它应该适用于大多数情况。否则,人们可以创建自己的规则。我们确实有一些只禁止语法的遗留规则(例如 no-undefined),我们将保留这些规则,但不会再添加任何规则。
  • 样式规则被冻结 - 我们将不再为样式规则添加任何更多选项。我们已经了解到,没有办法满足每个人的个人喜好,而且大多数规则已经有很多难以理解的选项。样式规则是指与间距、约定以及一般不会突出显示错误或更好方法的任何内容相关的规则。2021-01-29 更新:我们在 README 中澄清了我们仍然会支持新添加的 ECMAScript 功能。
  • 新规则选项必须由社区成员实现 - 人们仍然可以为现有的核心非样式规则提出新的选项,我们仍然会像往常一样对其进行评估。但是,这些经过批准的选项需要由社区实现,并且不会成为核心团队开发路线图的一部分。

那错误呢?

我们仍将评估所有核心规则,包括样式规则,以查找错误。如果可以验证错误,我们仍然会将其作为正常维护例程的一部分进行修复。

感谢您的理解

我们知道这是对 ESLint 操作方式的改变,感谢您的理解。ESLint 由一名兼职开发者和一组志愿者维护,因此我们的带宽有限。我们正在进行这些更改,以便更好地利用我们用于维护项目的时间。如果您想帮助我们,请考虑为该项目做出贡献或 捐赠

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

ESLint v9.14.0 released
阅读时长 2 分钟

ESLint v9.14.0 发布

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

ESLint v9.13.0 released
阅读时长 1 分钟

ESLint v9.13.0 发布

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