Agent Skills
返回列表
💻

ESLint 规则冲突解决器

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/eslint-rule-conflict-resolver

技能介绍

问题背景

在大型项目中,开发者通常会组合使用多个 ESLint 配置包来覆盖不同的代码规范需求。eslint-config-airbnb 提供 Airbnb 风格的 JavaScript 编码规范,eslint-config-prettier 则用于关闭与格式化工具冲突的规则,@typescript-eslint 为 TypeScript 项目提供类型感知的检查规则。

当这些配置被同时引入时,规则之间的优先级和互斥关系变得复杂。例如,no-unused-vars 规则在 airbnb 配置中可能被设置为 error 级别,但在 typescript-eslint 的推荐配置中却被设为 warn 或完全禁用。开发者很难手动追踪这些规则覆盖关系,往往需要逐一检查每个配置文件才能定位冲突来源。

核心能力

该技能通过 ESLint Node.js API 直接读取项目中的 .eslintrc 配置文件,自动分析不同插件之间的规则交互。

关键步骤:

  • 遍历项目中的所有配置文件,包括 .eslintrc.js、.eslintrc.json 等格式
  • 解析每个配置包的规则定义,识别重复定义或互相矛盾的规则
  • 分析 extends 链中的规则继承和覆盖关系,标记出被覆盖的规则
  • 针对检测到的冲突,给出具体的规则调整建议

技能特别关注 airbnb-prettier-typescript-eslint 这个常见组合中的已知冲突模式,能够帮助开发者快速理解为什么某些规则会被意外禁用或升级。

适用边界与注意点

环境要求:

  • Node.js 版本需为 ^20.19.0、^22.13.0 或 >=24,且需包含 SSL 支持
  • 如果项目使用 TypeScript 类型定义,需要 TypeScript 5.3+ 版本
  • 某些 Yarn PnP 项目需要配置 node-linker=hoisted 以避免模块解析问题

局限性:

  • 仅支持传统的 .eslintrc 配置文件格式,对扁平配置(eslint.config.js)的支持有限
  • 冲突检测基于静态分析,无法覆盖运行时动态配置的场景
  • 对于自定义规则插件内部的冲突,分析能力取决于插件是否暴露规则元数据

使用场景

  • 项目同时使用 airbnb、prettier 和 typescript-eslint 时,排查某个规则为何被覆盖失效
  • 合并多个 .eslintrc 文件后,定位前后端配置中重复定义且互相冲突的规则
  • 升级 ESLint 或 Node.js 后,检查哪些已启用规则在新环境下产生冲突或告警
  • 重构 TypeScript 项目时,确认 typescript-eslint 的规则是否与基础规范包冲突

适合人员

  • 中大型前端团队成员,需要同时维护 airbnb、prettier 和 typescript-eslint 多套配置
  • TypeScript 后端开发者,希望减少 eslint-config-airbnb 与 typescript-eslint 的规则冲突
  • 开源项目维护者,需要在合并社区 PR 后快速验证 .eslintrc 规则覆盖是否合理
  • 构建工具链工程师,负责统一公司内多个仓库的 ESLint 基线配置