【译】如何发布 Deno 模块

1,078 阅读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 注册中心,这个注册中心在区块链上。这个注册中心有一些很好的特性:安全性,不变性和独立于任何源码管理系统。也就是说,它不要求你使用 gitGitHub

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

  1. 浏览器导航至 nest.land/ 页面;
  2. 点击 Get Started 链接
  3. 点击 No account? Sign up 链接
  4. 用新的,唯一的用户名填写 Username 字段,并在 PasswordConfirm 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上面提出一个问题 来接触更多社区和维护者。