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

ESLint中规则匹配器及类CSS选择器逻辑的源码实现位置在哪?

你找错了查询路径,rule-tester.js是ESLint用于规则单元测试的工具模块,本身不包含选择器和钩子分发的核心逻辑,对应实现分别在两个核心模块:

  • 选择器匹配核心逻辑
    通配符*、:function这类伪类、类CSS的嵌套/属性选择器的解析、校验、节点匹配逻辑,全部在lib/linter/selectors.js模块中实现,ESLint内部还封装了对AST节点类型的预设分类,比如:function就是所有函数类型节点的统一别名,包含普通函数声明、函数表达式、箭头函数等多个AST节点类型。
  • 钩子分发逻辑
    你提到的:exit后缀的处理逻辑在lib/linter/linter.js的AST遍历绑定部分:
    • 所有规则配置的监听器键会先被统一预处理,拆分出是否带:exit后缀,带后缀的监听器会被绑定到AST遍历的节点退出阶段触发,不带后缀的会绑定到节点进入阶段触发。
    • 通配符*对应的监听器会在所有节点的对应阶段(进入/退出)都被触发,不需要匹配特定节点类型。

你贴的那段代码是规则层面的监听器写法,属于业务规则的实现代码,不是ESLint核心框架的内置逻辑,所以你在核心库源码里搜不到完全一样的实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 07:54:03