doctrine

中文文档
3.0.0发布于 2018/11/10Apache-2.0CommonJS近 30 天下载 5.1亿

JSDoc解析器

中文使用文档
文档目录9 节
  1. 安装
  2. 用法
  3. parse ()
  4. 团队
  5. 贡献
  6. 常见问题
  7. 我可以将整个JavaScript文件传递给Doctrine吗?
  8. 许可证
  9. 去哪里寻求帮助?

NPM version build status Test coverage Downloads Join the chat at https://gitter.im/eslint/doctrine

学说

教义是一种 JSDoc 解析来自JavaScript的文档注释的解析器(需要传入注释,而不是整个JavaScript文件)。

安装

您可以使用 npm:

$ npm install doctrine --save-dev

原则也可以用在网页浏览器中使用 Browserify。

用法

JavaScript中的Require原则:

var doctrine = require("doctrine");

parse ()

主要方法是 parse(),它接受两个参数:要解析的JSDoc注释和可选的options对象。可用的选项有:

  • unwrap -设置为 true 删除前导 /**,任何 * 这是一行的开头,后面跟着一行 */ 从源文本。默认值: false。
  • tags -要返回的标记数组。指定时,Doctrine只返回此数组中的标记。例如,如果 tags 是 ["param"]那么,只有 @param 标签将被退回。默认值: null。
  • recoverable -设置为 true 即使出现语法错误也要继续进行解析。默认值: false。
  • sloppy -设置为 true 允许在括号中指定可选参数(@param {string} [foo]). 默认值: false。
  • lineNumbers -设置为 true 添加 lineNumber 到每个节点,指定在源中找到该节点的行。默认值: false。
  • range -设置为 true 添加 range 到每个节点,在原始注释中指定节点的开始和结束索引。默认值: false。

这里有一个简单的例子:

var ast = doctrine.parse(
    [
        "/**",
        " * This function comment is parsed by doctrine",
        " * @param {{ok:String}} userName",
        "*/"
    ].join('\n'), { unwrap: true });

这个例子返回以下AST:

{
    "description": "This function comment is parsed by doctrine",
    "tags": [
        {
            "title": "param",
            "description": null,
            "type": {
                "type": "RecordType",
                "fields": [
                    {
                        "type": "FieldType",
                        "key": "ok",
                        "value": {
                            "type": "NameExpression",
                            "name": "String"
                        }
                    }
                ]
            },
            "name": "userName"
        }
    ]
}

看到 演示页面 更多细节。

团队

这些人保持着项目的进展,是帮助的资源:

贡献

问题和pull请求将被分类并尽快做出回应。我们在 ESLint贡献者指南,所以请务必在投稿前阅读它们。如果您不确定在哪里挖掘,请查看 问题。

常见问题

我可以将整个JavaScript文件传递给Doctrine吗?

否。Doctrine只能解析JSDoc注释,因此您只需要将JSDoc注释传递给Doctrine就可以工作了。

许可证

学说

JS基金会及其他贡献者版权所有, https://js.foundation

根据Apache许可证2.0版(“许可证”)进行许可; 除非遵守许可,否则您不得使用此文件。 您可以从以下网址获得许可证的副本

http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,软件 在本许可项下分发的是按“现状”分发的, 不作任何明示或暗示的保证或条件。 有关管理权限的特定语言,请参阅许可证 许可证下的限制。

esprima

有些函数是由esprima派生的

版权所有(C) 2012, 2011 Ariya希 (推特: @ariyahidayat)和其他贡献者。

重新分发和使用的源代码和二进制形式,有或没有 在满足下列条件的情况下,允许进行修改:

  • 重新发布源代码必须保留上述版权 注意,此条件列表和以下免责声明。

  • 以二进制形式重新发布必须复制上述版权 注意,本条件列表和以下免责声明中的 随发行版提供的文件和/或其他材料。

本软件由版权所有者和贡献者“按原样”提供。 以及任何明示或暗示的保证,包括但不限于 对适销性和适合某一特定目的的默示保证 是否认。在任何情况下,我都不承担任何责任 直接的、间接的、偶然的、特殊的、惩戒性的或后果性的损害 (包括但不限于,替代商品或服务的采购; 损失:失去使用、数据或利润;或业务中断),无论如何引起和 在任何责任理论中,无论是合同责任、严格责任还是侵权责任 (包括疏忽或其他)因使用 本软件即使被告知有这种损害的可能性。

closure-compiler

一些扩展派生自闭包编译器

Apache许可 版本2.0,2004年1月 http://www.apache.org/licenses/

去哪里寻求帮助?

加入我们的 聊天室

版本与发布记录

doctrine 共发布 34 个版本,首次发布于 2012/05/11;过去 12 个月发布了 0 个版本。

版本发布日期距今
3.0.0latest2018/11/107 年前
2.1.02018/01/068 年前
2.0.22017/11/268 年前
2.0.02016/11/169 年前
1.5.02016/10/1410 年前
1.4.02016/09/1410 年前

关于 doctrine 的常见问题

doctrine 是什么?

JSDoc解析器

如何安装 doctrine?

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

doctrine 支持 TypeScript 吗?

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

doctrine 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

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

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

doctrine 可以商用吗?

doctrine 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

doctrine 的下载量有多少?

根据 npm 官方下载统计,doctrine 在 2026/10/05 – 2026/11/03 这 30 天内被下载 506,804,142 次,日均约 16,893,471 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

doctrine 还在维护吗?

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