
亮点
🌐 Highlights
更快的启动和代码检查
🌐 Faster startup and linting
这个版本包含了一系列针对 ESLint 核心检查流程和 stylish 格式化工具的性能提升。检查结果和公共 API 没有变化:相同的文件会产生和以前一样的提示,只是速度更快了。
🌐 This release includes a set of performance improvements across ESLint’s core linting pipeline and the stylish formatter. Linting results and the public API are unchanged: the same files produce the same messages as before, just faster.
主要改进有:
🌐 The main improvements are:
- 启动。 加载
eslint包时,不再急切地初始化用于规则选项的 JSON Schema 验证器。它现在会在第一次真正需要验证规则选项时才创建,这样可以从初始依赖图中去掉大约 45 个模块,并将包加载时间减少 20–25%。 - 规则执行。 当 ESLint 遍历文件结构时,它需要为每段代码决定哪些规则会关注它,然后调用这些规则。这是整个 linting 过程中执行最频繁的部分,现在在最常见的情况下它会走更短的路径。常见的节点选择器类型会通过快速通道处理,并且规则访问器会尽可能直接调用,而不是在每个节点上通过封装函数调用。
- 每个被报告问题的开销。 当一个规则报告问题时,ESLint 在显示信息之前需要执行几个处理步骤。其中一些步骤已经变得更高效:消息模板中的占位符仅在必要时填充,自动修复会在不将每个修复序列化为 JSON 的情况下检查其有效性,且同一个修复器对象会被该文件中所有报告的问题共享,而不是为每个修复创建一个。此外,没有任何
eslint-enable或eslint-disable注释的文件现在会完全跳过指令处理步骤。 - 默认格式化器。 默认的
stylish格式化器会避免从不包含终端控制字符的字符串中去掉这些字符,而且不再对每条消息运行正则表达式,这样可以加快打印大量问题的速度。
实际效果会根据你的配置和硬件有所不同,但使用许多核心规则的项目应该会在启动时间和整体 linting 时间上都有明显的提升。
🌐 Actual results will vary depending on your configuration and hardware, but projects using many core rules should see a noticeable improvement in both startup time and overall linting time.
特性
🌐 Features
d136fa4功能: object-shorthand 处理ignoreConstructors的带引号属性 (#21271) (Pavel)397b3b8功能:在no-unsafe-finally规则中报告标记为continue的不安全项 (#21316) (electrohyun)d3dd47f功能:仅豁免引用全局的new-cap内置模块 (#21290) (sethamus)
错误修复
🌐 Bug Fixes
22b09f5修复:在prefer-object-spread中忽略__proto__属性 (#21311) (xbinaryx)b684bb1修复:在类型和文档中使 TimePass.parse 可选 (#21313) (ntnyq)26d11bc修复:不要在object-shorthand中报告__proto__属性 (#21310) (xbinaryx)
文档
🌐 Documentation
9ecfdc5文档:注意,–cache 可能会为跨文件规则提供过期结果(#21312)(bytedoe)6c789ff文档:更新自述文件(GitHub Actions 机器人)5997825文档:澄清 preserve-caught-error 已知限制 (#21294) (Akinyemi Toluwalase)
杂项
🌐 Chores
520dd77性能:在关键区域实现快速路径 (#21210) (Nicholas C. Zakas)92086c8测试:更新EMFILE错误生成以兼容 Node.js 26.9.0 (#21330) (Francesco Trotta)9ac7eb6事务: 将 github/codeql-action 操作更新到 v4.38.0 (#21331) (renovate[bot])24310e3杂务:更新生态系统插件 (#21324) (ESLint 机器人)45ad79eci: 将 pnpm/action-setup 从 6.0.10 升级到 6.1.0 (#21318) (dependabot[bot])ac74e37杂事:添加带有 AI 披露要求的 AGENTS.md (#21221) (Nicholas C. Zakas)c832660杂项:将文档中的 Stylelint 升级到最新版本 (#21245) (Jung Hyeon Jun)f9f88fc杂务:更新生态系统插件 (#21308) (ESLint 机器人)[fc81076](https://github.com/eslint/eslint/commit/fc81076a5b8145360654d81cbc130cf7d25dca77)ci:添加更多类型的集成测试 (#20395) (Nitin Kumar)
