跳转到主要内容
在本页

deno doc,文档生成器

命令行用法

deno doc [OPTIONS] [source_file]...

显示模块的文档。

将文档输出到标准输出

deno doc ./path/to/module.ts

以 HTML 格式输出文档

deno doc --html --name="My library" ./path/to/module.ts

对模块进行代码检查以查找文档诊断信息

deno doc --lint ./path/to/module.ts

定位特定符号

deno doc ./path/to/module.ts MyClass.someField

显示运行时内置程序的文档

deno doc
deno doc --filter Deno.Listener

依赖管理选项 跳转到标题

--import-map 跳转到标题

从本地文件或远程 URL 加载导入映射文件。

--lock 跳转到标题

检查指定的锁定文件。(如果未提供值,则默认为 "./deno.lock")。

--no-lock 跳转到标题

禁用锁定文件的自动发现。

--no-npm 跳转到标题

不解析 npm 模块。

--no-remote 跳转到标题

不解析远程模块。

--reload 跳转到标题

简写: -r

重新加载源代码缓存(重新编译 TypeScript) 无值 重新加载所有内容 jsr:@std/http/file-server,jsr:@std/assert/assert-equals 重新加载特定模块 npm: 重新加载所有 npm 模块 npm:chalk 重新加载特定的 npm 模块。

选项 跳转到标题

--allow-import 跳转到标题

简写: -I

允许从远程主机导入。 可选择指定允许的 IP 地址和主机名,以及必要的端口。 默认值:deno.land:443、jsr.io:443esm.sh:443cdn.jsdelivr.net:443raw.githubusercontent.com:443user.githubusercontent.com:443

文档选项 跳转到标题

--category-docs 跳转到标题

指向一个 JSON 文件的路径,该文件以类别作为键,以及一个可选的 Markdown 文档值。

--default-symbol-map 跳转到标题

对使用块使用提供的默认名称到所需名称的映射。

--filter 跳转到标题

指向符号的点分隔路径。

--html 跳转到标题

以 HTML 格式输出文档。

--json 跳转到标题

以 JSON 格式输出文档。

--lint 跳转到标题

输出文档诊断信息。

--name 跳转到标题

将在文档中使用的名称(例如,用于面包屑导航)。

--output 跳转到标题

HTML 文档输出目录。

--private 跳转到标题

输出私有文档。

--strip-trailing-html 跳转到标题

从各种链接中移除尾部的 .html。 仍然会生成带有 .html 扩展名的文件。

--symbol-redirect-map 跳转到标题

指向一个 JSON 文件的路径,该文件以文件作为键,内部包含一个从符号到外部链接的映射。

示例 跳转到标题

deno doc 后跟一个或多个源文件列表,将打印每个模块的**导出**成员的 JSDoc 文档。

例如,给定一个文件 add.ts,其内容如下

/**
 * Adds x and y.
 * @param {number} x
 * @param {number} y
 * @returns {number} Sum of x and y
 */
export function add(x: number, y: number): number {
  return x + y;
}

运行 Deno doc 命令,会将函数的 JSDoc 注释打印到 stdout

deno doc add.ts
function add(x: number, y: number): number
  Adds x and y. @param {number} x @param {number} y @returns {number} Sum of x and y

代码检查 跳转到标题

您可以使用 --lint 标志在生成文档时检查文档中的问题。deno doc 会指出三种问题

  1. 如果根模块导出的类型引用了未导出的类型,则会报错。
    • 确保 API 使用者可以访问 API 使用的所有类型。这可以通过从根模块(在命令行中指定给 deno doc 的文件之一)导出类型或使用 @internal jsdoc 标记标记类型来抑制。
  2. 如果**公共**类型的返回值类型或属性类型缺失,则会报错。
    • 确保 deno doc 显示返回/属性类型,并有助于提高类型检查性能。
  3. 如果**公共**类型的 JS doc 注释缺失,则会报错。
    • 确保代码已编写文档。可以通过添加 jsdoc 注释或通过 @ignore jsdoc 标记将其从文档中排除来抑制此错误。或者,添加一个 @internal 标记以将其保留在文档中,但表示它是内部的。

例如

/mod.ts
interface Person {
  name: string;
  // ...
}

export function getName(person: Person) {
  return person.name;
}
$ deno doc --lint mod.ts
Type 'getName' references type 'Person' which is not exported from a root module.
Missing JS documentation comment.
Missing return type.
    at file:///mod.ts:6:1

这些代码检查旨在帮助您编写更好的文档并加快项目中的类型检查速度。如果发现任何问题,程序将以非零退出代码退出,并将输出报告到标准错误。

支持的 JSDoc 标签 跳转到标题

Deno 实现了大量的 JSDoc 标签,但也有一些 JSDoc 规范中未指定的额外标签。支持以下标签

  • constructor/class:将函数标记为构造函数。
  • ignore:忽略要包含在输出中的符号。
  • internal:将符号标记为仅供内部使用。在 HTML 生成器中,该符号不会获得列表条目,但是它仍然会生成,并且如果非内部符号链接到它,则可以访问它。
  • public:将符号视为公共 API。等同于 TypeScript 的 public 关键字。
  • private:将符号视为私有 API。等同于 TypeScript 的 private 关键字。
  • protected:将属性或方法视为受保护的 API。等同于 TypeScript 的 protected 关键字。
  • readonly:将符号标记为只读,这意味着它不能被覆盖。
  • experimental:将符号标记为实验性的,这意味着 API 可能会更改或删除,或者行为未明确定义。
  • deprecated:将符号标记为已弃用,这意味着它不再受支持,并且可能会在未来的版本中删除。
  • module:此标签可以在顶级 JSDoc 注释上定义,这会将该注释视为针对文件而不是后续符号。
  • category/group:将符号标记为特定类别/组。这对于将各种符号分组在一起很有用。
  • see:定义与该符号相关的外部链接。
  • example:为符号定义一个示例。
  • tags:通过逗号分隔的列表为符号定义其他自定义标签。
  • since:定义符号可用的起始版本。
  • callback:定义回调函数。
  • template/typeparam/typeParam:定义类型参数。
  • prop/property:定义符号的属性。
  • typedef:定义类型。
  • param/arg/argument:定义函数的参数。
  • return/returns:定义函数的返回类型和/或注释。
  • throws/exception:定义函数调用时抛出的异常。
  • enum:定义一个枚举对象。
  • extends/augments:定义函数扩展的类型。
  • this:定义函数中 this 关键字的指向。
  • type:定义符号的类型。
  • default:定义变量、属性或字段的默认值。

HTML 输出 跳转到标题

使用 --html 标志生成带有文档的静态站点。

$ deno doc --html --name="My library" ./mod.ts

$ deno doc --html --name="My library" --output=./documentation/ ./mod.ts

$ deno doc --html --name="My library" ./sub1/mod.ts ./sub2/mod.ts

生成的文档是一个包含多个页面的静态站点,可以部署到任何静态站点托管服务。

生成的站点包含客户端搜索功能,但如果用户的浏览器禁用了 JavaScript,则该功能不可用。

JSON 输出 跳转到标题

使用 --json 标志以 JSON 格式输出文档。此 JSON 格式由 Deno 文档网站 使用,并用于生成模块文档。