@es-joy/jsdoc-eslint-parser

中文文档
0.29.0发布于 2026/08/11MITTypeScriptESM + CJS近 30 天下载 3648

以 JSDoc 注释和类型作为 AST 支持 JavaScript 的解析器

中文使用文档
文档目录12 节
  1. 使用大小写
  2. 附加AST的方法
  3. 安装
  4. 解析选项
  5. mode (默认为"jsdoc")
  6. maxLines (默认:1)和 minLines (默认: 0)
  7. indent (默认:"")
  8. sourceType (违约) @babel/eslint-parser 默认值)
  9. babelOptions (默认:无)
  10. ...parserOptions (默认:无)
  11. 更改日志
  12. 作者和执照

@es-joy/jsdoc-slint-parser (英语)

这个项目没有经过充分检验,应考虑 实验.

这个项目的目的是允许完全 @babel/eslint-parser 配置,但与 comment-parser- 基于 JSDoc 块的 AST 和 jsdoctypeparser AST 用于 JSDoc在这些街区内打字.

还有一个 @es-joy/jsdoc-eslint-parser/typescript.js 解析器 以 @typescript-eslint/parser。 。 。 .

希望这能促使ESTree正式接受 这样的AST.

你可以运行我们 lint-test 脚本作为示例.

使用大小写

  1. 使用 no-restricted-syntax 禁止某些评论或评论类型
  2. 向您提供注释或注释类型的可知查询选择器 contexts 内 eslint-plugin-jsdoc

附加AST的方法

在使用 Babel ESLint 解析器时,生成了具有以下特性的 AST : tokens 打开 Program eSLint 以及《公约》 range 预计每个阵列 节点.

我们补充AST评论 或者说, JSDocBlock AST-by 添加一个 jsdoc 属性 改为: @babel/eslint-parser- 没有密码 合适的祖先 持有评论块。 我们相应 更新访问者的密钥,以确保每个密钥的可访问范围 属性, jsdoc 被添加,因此可以单独进行可变. 我们也 确保 comment-parser 财务报告和审定财务报表 jsdoctypeparser 访问者密钥添加到 我们分析员的访客钥匙.

我们加一个 parent 每个节点,这样我们就可以 getJSDocComment 方法可以 (见下).

难搞的部分 jsdoc 财产与确定 哪个 JSDoc应当与某一节点相关联。 单位 jsdoccomment, (中文(简体) ), 我们有一个 getJSDocComment 方法,最初由 ESLint 本身开始 确定应在何地进行.

这种对特定结构的注释的检测不是一个小问题. 例如:

/* A */
const /* B */ aFunc = /* C */ function () {};

...对于函数表达式,我们可能会在C点寻找JSDoc Block 或B先,但如果不在场,则在A点寻找. 这个 getJSDocComment 方法使用这样的算法,我们称之为我们 解析器当前在每个节点上。 如果在B点没有JSDoc区块或 C. 节点 aFunc VariableDeclaration 节点应该得到JSDoc 在 A 点上加块而不是 FunctionExpression 获得它.

虽然抽象地说,它似乎更适合 FunctionExpression, (中文(简体) ), 找到JSDoc块的实际目的更多地涉及立场和 代码生成, 如果在最接近的位置, 代码生成应最容易操作 到它的实际位置.

请注意,《公约》第2条第1款(a)项和(b)项对所生产的AST作了说明 教学 项目。 此外, 此解析器添加到 Program 节点, a jsdocBlocks 属性(对应 改为 comments 但仅限未加附件的注释块),同时加上 commentsIndex 反映本联合文件索引的整数偏好 块与 comments 阵列.

安装

npm i -D @es-joy/jsdoc-eslint-parser

解析选项

mode (默认为"jsdoc")

这个 jsdoctypeparser 模式, jsdoc, (中文(简体) ), typescript, (中文(简体) ), closure,或 permissive。 。 。 . 一般不建议采用后者.

maxLines (默认:1)和 minLines (默认: 0)

确定从结构的线条来看,我们应该允许 寻找评论块.

indent (默认:"")

目前已曝光,但可能不应更改,而且可能已 未来被删除。 它表示解析时使用的缩进 评论。 (今后可能需要自动侦查。 )

sourceType (违约) @babel/eslint-parser默认值)

用于表示 script 或者说 module

babelOptions (默认:无)

传递给 Babel 的额外选项( 如果不使用 typescript (掌声).

...parserOptions (默认:无)

任何其他选项都会传递到解析器上 .

更改日志

更改日志可见于 变化情况。 。 。 .

作者和执照

布莱特·扎米尔 财务报告和审定财务报表 捐助者。 。 。 .

麻省理工学院的执照,请参看 利马 文档.

版本与发布记录

@es-joy/jsdoc-eslint-parser 共发布 47 个版本,首次发布于 2021/05/03;过去 12 个月发布了 3 个版本。

版本发布日期距今
0.29.0latest2026/08/113 个月前
0.28.02026/08/073 个月前
0.27.02025/12/2910 个月前
0.26.02025/11/081 年前
0.25.02025/10/231.1 年前
0.24.02025/09/271.1 年前

关于 @es-joy/jsdoc-eslint-parser 的常见问题

@es-joy/jsdoc-eslint-parser 是什么?

以 JSDoc 注释和类型作为 AST 支持 JavaScript 的解析器

如何安装 @es-joy/jsdoc-eslint-parser?

在项目目录运行 npm install @es-joy/jsdoc-eslint-parser,或使用 pnpm add / yarn add / bun add。

@es-joy/jsdoc-eslint-parser 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@es-joy/jsdoc-eslint-parser 支持 ESM 还是 CommonJS?

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

@es-joy/jsdoc-eslint-parser 需要什么版本的 Node.js?

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

@es-joy/jsdoc-eslint-parser 可以商用吗?

@es-joy/jsdoc-eslint-parser 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@es-joy/jsdoc-eslint-parser 的下载量有多少?

根据 npm 官方下载统计,@es-joy/jsdoc-eslint-parser 在 2026/10/14 – 2026/11/12 这 30 天内被下载 3,648 次,日均约 122 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@es-joy/jsdoc-eslint-parser 还在维护吗?

最新版本 0.29.0 发布于 2026/08/11(3 个月前);至今共发布 47 个版本,其中过去 12 个月发布了 3 个;首次发布于 2021/05/03。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。