esquery

中文文档
1.7.0发布于 2025/12/31BSD-3-ClauseESM + CJS近 30 天下载 5.7亿

ECMAScript AST的查询库,使用类似CSS选择器的查询语言。

中文使用文档

ESQuery是一个库,用于使用CSS样式选择器系统查询Esprima的AST输出中的语法模式。看看这个演示:

演示

支持以下选择器:

  • AST节点类型: ForStatement
  • 通配符: *
  • 属性的存在: [attr]
  • 属性值: [attr="foo"] 或 [attr=123]
  • 属性正则表达式: [attr=/foo.*/] 或者(带旗帜) [attr=/foo.*/is]
  • 属性条件: [attr!="foo"], [attr>2], [attr<3], [attr>=2],或 [attr<=3]
  • 嵌套的属性: [attr.level2="foo"]
  • 字段: FunctionDeclaration > Identifier.id
  • 第一个 或 最后 孩子: :first-child 或 :last-child
  • nth-child (不支持ax+b): :nth-child(2)
  • nth-last-child (不支持ax+b): :nth-last-child(1)
  • 后代: ancestor descendant
  • 孩子: parent > child
  • 后兄弟姐妹: node ~ sibling
  • 相邻的兄弟姐妹: node + adjacent
  • 否定: :not(ForStatement)
  • 有: :has(ForStatement), :has(> ForStatement)
  • 匹配任何: :is([attr] > :first-child, :last-child)
  • 主题指标: !IfStatement > [name="foo"]
  • AST节点类别: :statement, :expression, :declaration, :function,或 :pattern

Build Status

版本与发布记录

esquery 共发布 18 个版本,首次发布于 2013/07/24;过去 12 个月发布了 1 个版本。

版本发布日期距今
1.7.0latest2025/12/3110 个月前
1.6.02024/07/092 年前
1.5.02023/03/023 年前
1.4.22023/02/163 年前
1.4.12023/02/163 年前
1.4.02021/02/065 年前

关于 esquery 的常见问题

esquery 是什么?

ECMAScript AST的查询库,使用类似CSS选择器的查询语言。

如何安装 esquery?

在项目目录运行 npm install esquery,或使用 pnpm add / yarn add / bun add。

esquery 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/esquery 是否存在。

esquery 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

esquery 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=0.10。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

esquery 可以商用吗?

esquery 使用 BSD-3-Clause 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。另外不得用原作者名义为衍生产品背书。以上为概括,不构成法律意见,请以许可原文为准。

esquery 的下载量有多少?

根据 npm 官方下载统计,esquery 在 2026/10/04 – 2026/11/02 这 30 天内被下载 566,077,381 次,日均约 18,869,246 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

esquery 还在维护吗?

最新版本 1.7.0 发布于 2025/12/31(10 个月前);至今共发布 18 个版本,其中过去 12 个月发布了 1 个;首次发布于 2013/07/24。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。