【译】如何发布 Deno 模块

1,126 阅读4分钟

原文链接:dev.to/craigmorten…

如果你刚刚编写了第一个 Deno 模块,想将其提交给社区。可以通过以下方式将模块发布到两个最受欢迎的 Deno 注册中心:

Deno Land 注册中心

官方 Deno Land 注册中心本身 就是主要和大概最受欢迎的 Deno 注册中心。以下是将 GitHub 仓库添加到注册中心的方法:

  1. 打开想要添加的仓库
  2. 前往设置(Settings) tab
  3. 点击 Webhooks tab
  4. 点击 Add webhook 按钮
  5. 在 Payload URL 中输入 URL https://api.deno.land/webhook/gh/<moduleName> ,确保将 <moduleName> 部分替换成你的模块的名称
  6. 选择 application/json 作为内容类型
  7. 选择 Let me select individual events 单选按钮
  8. 仅选中 Branch or tag creation 复选框

9.点击 Add webhook 按钮

  1. 确认您的 webhook 已添加到 Webhooks 中

完成上述步骤后,剩下的就是在 GitHub 仓库中创建 release/tag。这是在 GitHub 中创建 release 的一种方法:

  1. 导航到要为其创建发行版本的仓库

  2. 点击右侧菜单上的 Releases 链接

  3. 点击 Draft a new release 按钮

  4. 填写 Tag version 字段,Release title 字段和 Describe this release 文本框

  5. 点击 Publish release 按钮

现在,您应该能够导航到 deno.land/x/ 并搜索你的模块,或者通过 https://deno.land/x/<moduleName> 直接导航到你的模块主页(用你的模块名替换<moduleName>)。 如果一开始没有出现,请尝试刷新几次:新模块和标签的注册和上传可能需要花费几秒钟的时间。

如果一段时间后,你的模块仍然没有出现在 Deno 注册中心,那么可以尝试以下几种方法:

  1. 导航回你的仓库的 Releases 页面,并检查是否成功创建了 Release
  2. 导航至你的 webhooks 设置页面并检查你是否完全按照描述创建了 webhook:单击 Edit 或 webhook 链接将你带入一个可以编辑 webhook 的页面
  3. 在 webhook 编辑页面上,导航到底部的 Recent Deliveries 部分,并单击 delivery ids 的最后一个,展开关于最近的 webhook 请求和响应的详细信息,这些信息对于调试非常有用。
  4. 如果所有其他方法都失败了,可以通过在 deno_registry2 存储仓库中开启一个 issue,或者通过 #help channel of the Deno Discord 发消息来联系 Deno 维护人员。

要获取 Deno 注册中心的更多信息,请转到它的 deno.land/x/ (这里也有使用指南)并在 v2 注册中心查看这篇博客。

nest.land 注册中心

另一个受欢迎的注册中心是 nest.land 注册中心,这个注册中心在区块链上。这个注册中心有一些很好的特性:安全性,不变性和独立于任何源码管理系统。也就是说,它不要求你使用 git 或 GitHub。

以下是上传到 nest.land 注册中心的方法:

  1. 浏览器导航至 nest.land/ 页面;
  2. 点击 Get Started 链接
  3. 点击 No account? Sign up 链接
  4. 用新的,唯一的用户名填写 Username 字段,并在 Password 和 Confirm Password 字段中输入密码。
  5. 点击 Create Account and Generate an API Key 按钮
  6. 你将获取自己唯一的 API 密钥。注意这一点并保证它隐私且安全。
  7. 在你选择的 IDE/终端 中,导航到要作为模块发布的代码的根目录
  8. 在终端中执行 deno install -A -f --unstable -n eggs https://x.nest.land/eggs@0.2.1/mod.ts 安装 nest.land eggs CLI。更多详细信息请访问 nest.land 安装文档页面
  9. 在终端中执行 eggs link <key>,这里的 <key> 要替换成你之前生成的 nest.land API 密钥。这将在本地计算机上保存 API 密钥,意味着你可以将模块发布到 nest.land 并且不需要再登陆了。更多详细信息请参阅 nest.land 文档
  10. 使用 eggs init 初始化模块(类似 npm init)以配置 nest.land。这将提示你输入有关模块的一系列信息,如名称(name)、描述(desription)、版本(vertion)等。结果将是在你项目的根目录中出现一个新创建的 egg.json,它非常类似于 package.json。初始化模块的更多信息和egg.json 的配置细节见 nest.land 文档。
  11. 通过执行 eggs publish 来发布模块。见 nest.land 发布文档 获取更多信息。
  12. 导航到 nest.land gallery 并搜索你的模块以确认你的模块已经成功发布。
  13. 点击你的模块会打开一个专门的页面,包括你的模块的 readme 和如何从 nest.land import 你的模块的相关信息。

如果你有任何问题,nest.land 文档是一个很好的起点。或者,可以通过 nest.land 的 GitHub 讨论区 或在 nest.land 的 GitHub上面提出一个问题 来接触更多社区和维护者。