Skip to Content

如何编写一个好的插件

首先,感谢您决定为Fastify编写一个插件。Fastify是一个极简框架,并且插件是其强项之一,所以非常感谢您的贡献。

Fastify的核心原则包括性能、低开销以及提供良好的用户体验。在编写插件时,请务必牢记这些原则。因此,在本文档中,我们将分析构成高质量插件的特征。

需要一些灵感吗?您可以在我们的问题跟踪器中使用标签 “plugin suggestion”  查找建议!

代码

Fastify 使用不同的技术来优化其代码,其中许多在我们的指南中都有文档记录。我们强烈推荐您阅读 插件手册,以发现所有可用于构建您的插件的 API 并学习如何使用它们。

如果您有任何问题或需要建议,请随时联系我们!只需在我们的帮助仓库  中打开一个问题即可。

一旦您将插件提交到我们的 生态系统列表,我们将审查您的代码,并在必要时提供改进意见。

文档

文档非常重要。如果您的插件没有良好的文档,我们不会将其添加到生态系统列表中。缺乏高质量的文档会使人们更难使用您的插件,可能会导致它被闲置不用。

如果您想查看一些优秀的插件文档示例,请参阅:

许可证

您可以根据自己的喜好为插件选择许可证,我们不会强制使用任何特定的许可。

我们更倾向于使用 MIT 许可证 ,因为我们认为它可以让更多的人自由地使用代码。有关其他替代许可证,请参阅 OSI 列表  或 GitHub 的 choosealicense.com 

示例

始终在您的仓库中包含一个示例文件。示例对用户非常有帮助,并且可以快速测试插件。您的用户会感激这一点。

测试

插件 必须 进行彻底的测试以验证其是否正常工作。

没有测试的插件将不会被接受到生态系统列表中。缺乏测试无法激发信任,也无法保证代码在不同版本的依赖项之间继续正常运行。

我们不强制使用任何特定的测试库。我们使用 node:test,因为它提供了开箱即用的并行测试和代码覆盖率功能,但您可以根据自己的喜好选择您喜欢的库。 我们强烈建议您阅读 插件测试 以了解如何测试您的插件。

代码检查器

使用代码检查器不是强制性的,但我们强烈推荐您在插件中使用它。它可以确保一致的代码风格并帮助您避免许多错误。

我们使用 standard,因为它无需配置即可工作,并且非常容易集成到测试套件中。

持续集成

虽然不是强制性的,但如果你将代码作为开源发布,使用持续集成来确保贡献不会破坏你的插件,并展示该插件按预期工作是有帮助的。CircleCI 和 GitHub Actions 对于开源项目都是免费且易于设置的。

此外,你还可以启用诸如 Dependabot  这样的服务,它可以帮助你保持依赖项更新并发现 Fastify 的新版本是否与你的插件存在兼容性问题。

让我们开始吧!

太好了,现在你知道了如何为 Fastify 编写一个好插件所需的一切知识!在你构建了一个(或多个)插件之后,请让我们知道!我们会将其添加到我们的文档的 生态系统  部分!

如果你想查看一些实际示例,可以参考以下内容:

  • @fastify/view 模板渲染插件(支持 ejs, pug, handlebars, marko)。
  • @fastify/mongodb Fastify MongoDB 连接插件,使用它可以让你在整个服务器中共享同一个 MongoDB 连接池。
  • @fastify/multipart Fastify 的 multipart 支持。
  • @fastify/helmet 为 Fastify 提供重要的安全头。