原文链接:dev.to/craigmorten…
如果你刚刚编写了第一个 Deno 模块,想将其提交给社区。可以通过以下方式将模块发布到两个最受欢迎的 Deno 注册中心:
Deno Land 注册中心
官方 Deno Land 注册中心本身 就是主要和大概最受欢迎的 Deno 注册中心。以下是将 GitHub 仓库添加到注册中心的方法:
- 打开想要添加的仓库
- 前往设置(Settings) tab
- 点击 Webhooks tab
- 点击
Add webhook按钮 - 在
Payload URL中输入 URLhttps://api.deno.land/webhook/gh/<moduleName>,确保将<moduleName>部分替换成你的模块的名称 - 选择
application/json作为内容类型 - 选择
Let me select individual events单选按钮 - 仅选中
Branch or tag creation复选框
9.点击 Add webhook 按钮
- 确认您的 webhook 已添加到 Webhooks 中
完成上述步骤后,剩下的就是在 GitHub 仓库中创建 release/tag。这是在 GitHub 中创建 release 的一种方法:
-
导航到要为其创建发行版本的仓库
-
点击右侧菜单上的
Releases链接 -
点击
Draft a new release按钮 -
填写
Tag version字段,Release title字段和Describe this release文本框 -
点击
Publish release按钮
现在,您应该能够导航到 deno.land/x/ 并搜索你的模块,或者通过 https://deno.land/x/<moduleName> 直接导航到你的模块主页(用你的模块名替换<moduleName>)。
如果一开始没有出现,请尝试刷新几次:新模块和标签的注册和上传可能需要花费几秒钟的时间。
如果一段时间后,你的模块仍然没有出现在 Deno 注册中心,那么可以尝试以下几种方法:
- 导航回你的仓库的 Releases 页面,并检查是否成功创建了 Release
- 导航至你的 webhooks 设置页面并检查你是否完全按照描述创建了 webhook:单击
Edit或 webhook 链接将你带入一个可以编辑 webhook 的页面 - 在 webhook 编辑页面上,导航到底部的
Recent Deliveries部分,并单击 delivery ids 的最后一个,展开关于最近的 webhook 请求和响应的详细信息,这些信息对于调试非常有用。 - 如果所有其他方法都失败了,可以通过在 deno_registry2 存储仓库中开启一个 issue,或者通过 #help channel of the Deno Discord 发消息来联系 Deno 维护人员。
要获取 Deno 注册中心的更多信息,请转到它的 deno.land/x/ (这里也有使用指南)并在 v2 注册中心查看这篇博客。
nest.land 注册中心
另一个受欢迎的注册中心是 nest.land 注册中心,这个注册中心在区块链上。这个注册中心有一些很好的特性:安全性,不变性和独立于任何源码管理系统。也就是说,它不要求你使用 git 或 GitHub。
以下是上传到 nest.land 注册中心的方法:
- 浏览器导航至 nest.land/ 页面;
- 点击
Get Started链接 - 点击
No account? Sign up链接 - 用新的,唯一的用户名填写
Username字段,并在Password和Confirm Password字段中输入密码。 - 点击
Create Account and Generate an API Key按钮 - 你将获取自己唯一的 API 密钥。注意这一点并保证它隐私且安全。
- 在你选择的 IDE/终端 中,导航到要作为模块发布的代码的根目录
- 在终端中执行
deno install -A -f --unstable -n eggs https://x.nest.land/eggs@0.2.1/mod.ts安装 nest.landeggsCLI。更多详细信息请访问 nest.land 安装文档页面 - 在终端中执行
eggs link <key>,这里的<key>要替换成你之前生成的 nest.land API 密钥。这将在本地计算机上保存 API 密钥,意味着你可以将模块发布到 nest.land 并且不需要再登陆了。更多详细信息请参阅 nest.land 文档 - 使用
eggs init初始化模块(类似npm init)以配置 nest.land。这将提示你输入有关模块的一系列信息,如名称(name)、描述(desription)、版本(vertion)等。结果将是在你项目的根目录中出现一个新创建的egg.json,它非常类似于package.json。初始化模块的更多信息和egg.json 的配置细节见 nest.land 文档。 - 通过执行
eggs publish来发布模块。见 nest.land 发布文档 获取更多信息。 - 导航到 nest.land gallery 并搜索你的模块以确认你的模块已经成功发布。
- 点击你的模块会打开一个专门的页面,包括你的模块的 readme 和如何从 nest.land import 你的模块的相关信息。
如果你有任何问题,nest.land 文档是一个很好的起点。或者,可以通过 nest.land 的 GitHub 讨论区 或在 nest.land 的 GitHub上面提出一个问题 来接触更多社区和维护者。