You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级eslint-config-airbnb-typescript至12.x以上后ESLint检测速度骤降求助

ESLint升级eslint-config-airbnb-typescript后检测变慢的可能原因

以下是导致单文件检测速度大幅下降的常见原因及排查方向:

1. 依赖版本兼容性不匹配

高版本的 eslint-config-airbnb-typescript 通常对 ESLint 和 @typescript-eslint 套件有严格的版本要求。你当前使用的 ESLint 7.32.0 和 @typescript-eslint 5.33.1 可能无法适配升级后的 airbnb 配置,导致内部出现冗余计算、错误的类型处理逻辑,直接拖慢检测速度。

2. 新增类型依赖型规则

升级后的 airbnb-typescript 配置可能启用了更多依赖 TypeScript 类型信息的规则。这类规则需要调用 TypeScript 编译器服务获取类型数据,相比纯语法检查的规则,会消耗更多 CPU 和内存资源,即使单文件检测也会大幅增加耗时。

3. TSConfig 范围过大

你的 ESLint 配置中指定了 project: "./tsconfig.json",如果 tsconfig.json 的 include 范围包含了大量非业务文件(如 node_modules、dist、测试用例以外的文档等),升级后的配置可能更严格地加载整个项目的类型信息,而非仅当前检测文件的关联类型,导致单文件检测时需要处理额外的类型数据。

4. 规则重复或插件冲突

检查你的 extends 数组和自定义规则:

  • airbnb-typescript/base 已经集成了 eslint:recommended 和 @typescript-eslint/recommended 的核心规则,重复引入这些配置会导致同一规则被多次执行。
  • 部分插件(如 eslint-plugin-import)与高版本 airbnb-typescript 配合时,可能出现解析逻辑冲突,引发额外的文件遍历或重复检查。

5. 缓存机制失效

升级后的配置或相关插件可能修改了缓存策略,导致 ESLint 无法复用之前的类型检查缓存。比如 @typescript-eslint 的类型信息缓存被禁用,或者缓存路径变更,使得每次检测都需要重新编译类型,大幅增加耗时。


排查建议

  • 查看升级后 eslint-config-airbnb-typescript 的官方文档,确认依赖版本要求,同步升级 ESLint 和 @typescript-eslint 到匹配版本。
  • 运行 ESLINT_DEBUG=true npx eslint your-file.tsx,查看输出中耗时最长的规则或插件,定位具体性能瓶颈。
  • 调整 tsconfig.json,通过 include/exclude 缩小类型检查范围,仅包含需要 lint 的业务文件。
  • 简化 extends 数组,移除重复的配置项(如去掉 eslint:recommended 和 @typescript-eslint/recommended,依赖 airbnb-typescript/base 即可)。
  • 启用 ESLint 缓存:在配置中添加 "cache": true,或运行检测时加上 --cache 参数,复用之前的检查结果。

内容的提问来源于stack exchange,提问作者Yoskutik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 15:15:35