如何编写优秀的插件
首先,感谢您决定为 Fastify 编写插件。Fastify 是一个极简的框架,插件是其强大的功能,所以感谢您。
Fastify 的核心原则包括性能、低开销以及为用户提供良好的体验。在编写插件时,务必牢记这些原则。因此,在本文件中,我们将分析构成优质插件的特征。
需要一些灵感吗?您可以在我们的问题跟踪器中使用标签 "插件建议"!
代码
Fastify 使用不同的技术来优化其代码,其中许多技术在我们的指南中都有记录。我们强烈建议您阅读 插件入门指南,以了解您可以用来构建插件的所有 API 以及如何使用它们。
您是否有疑问或需要一些建议?我们很乐意帮助您!只需在我们 帮助库 中打开一个问题。
将插件提交到我们的 生态系统列表 后,我们将审查您的代码,并在必要时帮助您改进。
文档
文档非常重要。如果您的插件没有得到良好的文档说明,我们将不会将其接受到生态系统列表中。缺乏高质量的文档会使用户更难使用您的插件,并且很可能导致它不被使用。
如果您想查看一些关于如何编写插件文档的良好示例,请查看
许可证
您可以根据自己的喜好为插件设置许可证,我们不强制执行任何类型的许可证。
我们更倾向于 MIT 许可证,因为我们认为它允许更多人自由地使用代码。有关替代许可证的列表,请参阅 OSI 列表 或 GitHub 的 choosealicense.com。
示例
始终将示例文件放在您的存储库中。示例对用户非常有帮助,并提供了一种快速测试插件的方法。您的用户会感激不尽。
测试
对插件进行彻底测试以验证其正常工作至关重要。
没有测试的插件将不会被接受到生态系统列表中。缺乏测试既不能激发信任,也不能保证代码在其依赖项的不同版本之间继续工作。
我们不强制使用任何测试库。我们使用 tap
,因为它提供了开箱即用的并行测试和代码覆盖率,但您可以选择自己喜欢的库。我们强烈建议您阅读 插件测试,以了解如何测试您的插件。
代码 linter
这不是强制性的,但我们强烈建议您在插件中使用代码 linter。它将确保一致的代码风格,并帮助您避免许多错误。
我们使用 standard
,因为它无需配置即可使用,并且非常易于集成到测试套件中。
持续集成
这不是强制性的,但如果您将代码作为开源发布,则使用持续集成来确保贡献不会破坏您的插件并表明插件按预期工作非常有帮助。对于开源项目,CircleCI 和 GitHub Actions 都是免费且易于设置的。
此外,您可以启用诸如 Dependabot 之类的服务,这将帮助您保持依赖项的最新状态,并发现 Fastify 的新版本是否与您的插件存在一些问题。
让我们开始吧!
太棒了,现在您已经了解了有关如何为 Fastify 编写优秀插件的所有必要信息!在构建了一个(或多个!)插件后,请告诉我们!我们将将其添加到我们文档的 生态系统 部分!
如果您想查看一些真实的示例,请查看
@fastify/view
模板渲染 (ejs, pug, handlebars, marko) 插件支持 Fastify。@fastify/mongodb
Fastify MongoDB 连接插件,使用它,您可以在服务器的每个部分共享同一个 MongoDB 连接池。@fastify/multipart
Fastify 的多部分支持。@fastify/helmet
Fastify 的重要安全标头。