亮点
支持导入属性
我们已更新 ESLint 以完全支持 ECMAScript 2025 的 导入属性 语法。此语法允许模块导入语句和动态导入在模块说明符旁边传递更多信息。主机环境可以使用此信息修改导入行为并支持其他类型的模块。例如,当指定 type: "json"
时,模块将被视为 JSON 模块。
import json from "./foo.json" with { type: "json" };
import("foo.json", { with: { type: "json" } });
ESLint 中的更新包括解析并确保命名约定规则不适用于导入属性键,因为它们由 ECMAScript 规范或主机环境定义,因此用户无法控制其命名。
请注意,已弃用的格式化规则 将不会更新以支持此语法。如果您仍在使用核心格式化规则,我们建议您切换到源代码格式化程序。或者,您可以使用 @stylistic/eslint-plugin-js
中的相应规则替换核心格式化规则。
支持正则表达式修饰符
我们已更新 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: 添加对导入属性和正则表达式修饰符的支持 (#19076) (Milos Djermanovic)b0faee3
feat: 为@eslint/js
包添加类型 (#19010) (Nitin Kumar)
错误修复
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/[email protected] (#19086) (Milos Djermanovic)28be447
chore: @eslint/js 发布的 package.json 更新 (Jenkins)f48a2a0
test: 使用正则表达式修饰符添加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
中的临时目录清理 (#19036) (Livia Medeiros)