Agent Skills
返回列表
💻

ESLint 自定义规则架构

开发编程 更新于 2026.08.29

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

请根据 https://skillhub.cn/install/skillhub.md 的指南,将 @user_3c6cb52e/eslint-rule-architect-2 安装到你的 AI 助手中。

技能介绍

它解决的是什么问题

当团队内部的编码规范超出 ESLint 官方规则的覆盖范围时,最后往往只剩两条路:要么在评审意见里反复手写同样的修改建议,要么维护一份只有一两个人看得懂的临时脚本。前者是纯体力劳动,后者通常缺少类型约束、测试和文档,一旦换人接手就变成黑盒。

这个技能面向的正是这一类场景:需要把团队约定沉淀成可执行、可测试、可分发的自定义规则,而不是一堆散落在 Wiki 里的文字说明。

核心能力

  • 基于 ESLint RuleTester API 生成规则骨架,让每条规则从一开始就带着可复现的用例
  • 借助 @typescript-eslint/utils 组织规则代码,避免手写 AST 遍历时的重复样板
  • 产出 AST visitor 模式的访问器代码,直接对目标节点做出判断与上报
  • 通过 parserServices 打通 TypeScript 的类型信息,在类型层面做判断而非只做文本匹配
  • 支持生成可共享的配置包,让规则在多个仓库之间复用

它是怎么工作的

技能把规则开发拆成几个可验证的步骤:

  1. 明确规则要拦截的具体写法,并用一句话描述"合法"与"非法"的边界
  2. 生成 rule 主体与对应的 visitor 访问器,确定监听哪些节点、在什么时机触发
  3. 利用 parserServices 获取类型信息,用类型条件替代脆弱的字符串比对
  4. 用 RuleTester 补齐正反用例,确保规则不会误伤合法代码
  5. 将规则封装成可分发的配置,供其他项目直接引用

适用边界

  • 需要 Node.js ^20.19.0、^22.13.0 或 >=24,且构建时启用了 SSL 支持
  • 依赖项解析要求 node-linker=hoisted
  • 如果使用 ESLint 的 TypeScript 类型定义,需要 TypeScript 5.3 及以上
  • 它解决的是规则怎么写的问题,不负责替代代码格式化工具,也不负责扫描结果的自动修复策略决策

使用场景

  • 团队代码规范要求禁止隐式全局变量,需要将其编写为带测试用例的 ESLint 自定义规则并下发到各仓库时。
  • 项目使用 TypeScript 编写,需要在 AST 遍历时根据变量的具体类型做出精准判断,而不仅是字符串匹配时。
  • 基础库团队希望将内部校验逻辑封装成可共享的 ESLint 配置包,供公司内其他业务线项目直接引用时。
  • 接手老旧代码规范脚本,需要将其重构为基于 RuleTester 且具备完整 TypeScript 类型推导支持的现代化规则时。

适合人员

  • 前端架构师,负责制定团队代码规范,需要将复杂的 TypeScript 类型约束转化为可自动执行的 ESLint 规则。
  • 基础库维护者,需要将内部工具函数的参数校验逻辑封装成标准化的配置包,供公司内多个业务线项目复用。
  • 新晋 Node.js 开发者,正在学习如何通过 AST 访问器和 RuleTester 编写带有完整测试覆盖的自定义 lint 规则。