ESLint v7.4.0 发布

我们刚刚推送了 ESLint v7.4.0,这是一个 ESLint 的小版本升级。此版本添加了一些新功能,并修复了之前版本中发现的几个 bug。

亮点

在 v7.3.0 版本发布后不久,我们收到了 一个 issue,指出 eslint-config-airbnb 正在崩溃,因为它在规则配置中使用了 InfinityInfinity 本应被 规则的选项模式 所禁止,但是 Ajv(ESLint 使用的 JSON 模式验证器)中的 一个 bug 错误地允许了在指定 integer 时使用 Infinity。这个问题最终被发现,是因为 v7.3.0 版本包含了一个 更改,该更改通过序列化规则配置修复了 一个不相关的问题。ESLint 期望规则配置是 JSON 可序列化的,以便在所有支持的 JSON、YAML 和 JS .eslintrc 格式之间保持一致性,并且它在 --cache--print-config 命令行选项中依赖于此属性。

eslint-config-airbnb 更新为使用 Number.MAX_SAFE_INTEGER 而不是 Infinity理想的解决方案,但这需要太长时间。由于这是唯一报告的问题,并且仅限于 eslint-config-airbnb 而不是最终用户配置,我们 实施了一个例外,将 Infinity 替换为 Number.MAX_SAFE_INTEGER,并在 v7.3.1 中发布,这使我们能够保留不相关的 bug 修复。

在 v7.3.1 版本发布后,我们收到了 另一个 issue,指出 一个 eslint-plugin-unicorn 规则 正在引导用户使用正则表达式实例,而正则表达式实例不是 JSON 可序列化的。与 eslint-config-airbnb 不同,后者的不可序列化值仅限于单个依赖项,eslint-plugin-unicorn 的最终用户配置包含正则表达式,因此修复所有这些配置是不切实际的。

因此,我们 正在撤销原始更改 以发布 v7.4.0 版本,并将寻找另一种解决方案。这将解除规则配置中包含非 JSON 可序列化值的用户的常规代码检查的阻塞,尽管在这些情况下,--cache--print-config 命令行选项可能会表现出未定义的行为。未来 ESLint 的主要版本将强制执行规则配置仅包含 JSON 可序列化值,并且我们预计 RuleTester 的增强功能将帮助规则作者为之准备他们的模式。

增强

Bug 修复

文档

最新的 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 的小版本升级。此版本添加了一些新功能,并修复了之前版本中发现的几个 bug。

ESLint v9.21.0 released
2 分钟阅读

ESLint v9.21.0 发布

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