ESLint v9.14.0 发布

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

亮点

支持 Import Attributes

我们已更新 ESLint,以完全支持 ECMAScript 2025 Import Attributes 语法。此语法允许模块导入语句和动态导入传递更多信息以及模块说明符。宿主环境可以使用此信息来修改导入行为并支持其他类型的模块。例如,当指定 type: "json" 时,模块被视为 JSON 模块

import json from "./foo.json" with { type: "json" };

import("foo.json", { with: { type: "json" } });

ESLint 中的更新包括解析,并确保命名约定规则不适用于导入属性键,因为它们由 ECMAScript 规范或宿主环境定义,因此用户无法控制其命名。

请注意,已弃用的格式化规则 将不会更新以支持此语法。如果您仍在使用核心格式化规则,我们建议切换到源代码格式化程序。或者,您可以将核心格式化规则替换为 @stylistic/eslint-plugin-js 中相应的规则。

支持 RegExp Modifiers

我们已更新 ESLint,以完全支持 ECMAScript 2025 正则表达式模式修饰符。此功能允许您在子表达式中更改当前活动的 RegExp 标志。

const regex1 = /^(?i:[a-z])[a-z]$/;

const regex2 = /^[a-z](?-i:[a-z])$/i;

ESLint 中的更新包括解析,并确保与正则表达式相关的规则按预期运行。

改进了配置文件查找性能

在 v9.13.0 中,我们更改了配置文件的查找方式。由于配置文件数据缓存不正确,其中一些更改对 ESLint 的运行时性能产生了负面影响。这在使用默认配置查找算法时尤其明显,据报告 性能下降了 20-30%(通过 --flag unstable_config_lookup_from_file 访问的新算法具有不同的性能特征,并且在我们的测试中没有显示出相同的负面性能影响)。

我们现在修复了默认算法和实验性算法中的配置文件查找缓存行为,因此当您从 v9.13.0 升级时,您应该会获得改进的性能。

功能

  • 3fa009f feat: 添加对 Import Attributes 和 RegExp Modifiers 的支持 (#19076) (Milos Djermanovic)
  • b0faee3 feat: 为 @eslint/js 包添加类型定义 (#19010) (Nitin Kumar)

Bug 修复

  • 24d0172 fix: 为 readFile() 启用重试并发限制 (#19077) (Nicholas C. Zakas)
  • b442067 fix: 避免在遍历期间目录被删除时崩溃。 (#19067) (Nicholas C. Zakas)
  • d474443 fix: 避免在处理 glob 时出现调用堆栈溢出 (#19035) (Livia Medeiros)

文档

  • 151c965 docs: 更新 context.languageOptions.parser 描述 (#19084) (Nitin Kumar)
  • dc34f94 docs: 更新 README (GitHub Actions Bot)
  • f16e846 docs: 更新 README (GitHub Actions Bot)
  • ee0a77e docs: 将链接从 @types/eslint 更改为 lib/types (#19049) (Karl Horky)
  • 50f03a1 docs: 澄清配置迁移指南中的全局忽略 (#19032) (Milos Djermanovic)
  • 37c9177 build: 更新 @wdio/* 依赖项 (#19068) (Francesco Trotta)
  • 35a8858 build: 排除有缺陷的依赖版本 (#19065) (Francesco Trotta)

杂项

  • f36cb16 chore: 升级 @eslint/js@9.14.0 (#19086) (Milos Djermanovic)
  • 28be447 chore: @eslint/js 发布 package.json 更新 (Jenkins)
  • f48a2a0 test: 添加带有 RegExp Modifiers 的 no-invalid-regexp 测试 (#19075) (Milos Djermanovic)
  • 425202e perf: 修复配置加载器中的缓存 (#19042) (Milos Djermanovic)
  • 3d44b3c ci: 在 Node.js 23 中运行测试 (#19055) (Francesco Trotta)
  • 7259627 test: 确保 check-emfile-handling.js 中的 tmp 目录清理 (#19036) (Livia Medeiros)

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