ESLint 规则冲突解决器
将以下提示词粘贴到你的 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 基线配置