ESLint 配置强制执行器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/eslint-config-enforcer 到 AI 助手。
技能介绍
解决什么问题
在 monorepo 中,多个子包通常各自引用共享的 ESLint 配置(如团队封装的 eslint-config-*)。当规则散落在不同层级、各包版本不一致时,会出现两类典型问题:
- 规则冲突:上层配置允许
no-console,下层覆盖又把它关掉,实际生效的规则很难凭读文件判断; - 合规盲区:部分包漏配、部分包过期,CI 只跑默认规则,仓库实际风格与规范文档逐渐脱节。
这个技能的目标是把「配置是否生效」从口头约定变成可执行、可检查的工程步骤。
工作原理
技能围绕 ESLint 的 flat config 体系展开,核心流程如下:
- 合并配置:将 monorepo 内各包的共享配置按 flat config 的优先级合并,理清
languageOptions、rules、overrides的来源与覆盖顺序; - 冲突检测:对比不同共享配置之间的规则差异,标出互相矛盾的条目;
- 生成覆盖文件:对需要差异化处理的包,自动生成
eslint.config.js的 override 片段,而不是让每个包各自复制一份配置; - 合规报告:借助
eslint --inspect-config输出实际生效的配置与差距,便于在 CI 中作为门禁依据。
适用边界与注意点
- 该技能基于 flat config 工作,仍在使用
.eslintrc旧格式的项目需先完成迁移; - 官方要求 Node.js 为
^20.19.0、^22.13.0或>=24,且编译时带 SSL 支持; - 使用官方 Node.js 发行版时 SSL 默认内置,自编译环境需要自行确认;
- pnpm 场景下需要设置
node-linker=hoisted以保证依赖解析符合预期; - 若需要使用 TypeScript 类型定义,要求 TypeScript 5.3 或更高版本;
- 技能只负责配置的合并、检测与报告,不包含代码自动修复逻辑,规则的实际修正仍需开发者执行。
使用场景
- Monorepo 中多个子包引用不同版本的共享 ESLint 配置,导致规则生效不一致,需要统一合并并检测冲突
- 共享配置更新后,各包本地覆盖规则出现冲突,需自动生成 override 片段并验证生效结果
- CI 流水线需集成配置合规检查,通过 eslint --inspect-config 报告各包实际生效规则与规范差距
- 团队从旧版 .eslintrc 迁移到 flat config 后,需理清多层配置覆盖顺序并修复规则矛盾
适合人员
- Monorepo 维护工程师:需确保多包 ESLint 配置统一,避免规则冲突影响代码质量
- 前端开发者:希望自动检测并解决跨包配置冲突,减少手动调试时间
- CI/CD 工程师:需要在流水线中集成配置合规检查,确保提交符合规范
- 技术负责人:需统一团队代码规范,通过工具自动检测配置偏差