本页内容

发布模块

Deno 对开发者如何发布模块没有强制规定 - 模块可以从任何来源导入。为了帮助发布和分发模块,提供了独立的解决方案。

在 deno.land/x 上发布 跳转到标题

发布 Deno 模块的一种常见方式是通过官方的 https://deno.land/x 托管服务。它缓存开源模块的版本并将其提供在一个易于记忆的域名下。

要使用它,模块必须在 GitHub 上的公共仓库中开发和托管。它们的源代码将在标签创建时发布到 deno.land/x。然后可以通过以下格式的 URL 访问它们

https://deno.land/x/<module_name>@<tag_name>/<file_path>

模块版本是持久且不可变的。因此,无法编辑或删除模块(或版本),以防止依赖此模块的程序出现故障。如果存在法律原因(例如版权侵权),则可以删除模块。

有关更多详细信息,请参阅 添加模块

自动生成模块文档 跳转到标题

发布模块时,会分析模块的内容。一个自动化流程会识别包含 Deno 理解的代码的模块,并根据代码生成文档。对于每个路径,包括根路径,它都会尝试识别默认模块。它会按优先级顺序查找扩展名为 Deno 理解的(ts、tsx、js、jsx、mjs 或 mts)的 modlibmainindex 文件。查看模块路径的文档时,将显示默认模块。

如果无法识别默认模块,则会提供可以记录的模块列表。在生成文档时,不仅会解析实际代码以生成它,还会使用 JSDoc(/** */)形式的内联文档来丰富文档。支持许多 JSDoc 标签。要提供模块级文档(当它包含在默认模块中时,它也成为路径级文档),请在模块中第一个 JSDoc 块的末尾使用 @module 标签。

在代码和内容中包含版本号 跳转到标题

可以使用以下替换变量在内容或代码示例中动态包含当前模块版本、Deno CLI 版本和标准库版本。

  • $MODULE_VERSION
  • 0.224.0
  • 1.44.4

例如,要在 README.md 中包含当前模块版本

import "https://deno.land/x/<module_name>@$MODULE_VERSION/mod.ts";

如果当前模块版本为 1.0.0,则上述导入语句将被替换为

import "https://deno.land/x/<module_name>@1.0.0/mod.ts";

为 Node.js/npm 发布 Deno 模块 跳转到标题

我们构建了一个工具,可以帮助将 Deno 特定代码发布到 npm,以便在 Node.js 或 JavaScript 生态系统的其他部分中使用。请参阅 dnt - Deno 到 Node.js 转换