如何编写一个好的插件
首先,感谢您决定为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 提供重要的安全头。