插件结构 Plugin structure

详细了解 Strapi 插件的结构

使用 CLI 生成器创建插件 时,Strapi 会在 ./src/plugins/my-plugin 文件夹中为您生成以下样板结构:

bash
. # 插件文件夹的根目录(例如,/src/plugins/my-plugin)
├── admin # 插件的管理面板部分。
   └── src
       ├── components # 包含前端组件
   ├── Initializer
   └── index.js # 插件初始化程序
   └── PluginIcon
       └── index.js # 包含主导航中插件的图标
       ├── pages # 包含插件的页面
   ├── App
   └── index.js # 实际页面的骨架
   └── HomePage
       └── index.js # 插件的主页
       ├── translations # 翻译文件,使插件支持 i18n
   ├── en.json
   └── fr.json
       └── utils
   └── getTrad.js # getTrad 函数返回相应的插件翻译
       ├── index.js # 插件的主要设置,用于在管理面板中注册元素
       └── pluginId.js # 根据 package.json 名称计算的 pluginId 变量
├── node_modules
├── server # 插件的后端部分
   ├── config
   └── index.js # 包含默认服务器配置
   ├── content-types # 特定于插件的内容类型
   └── index.js # 加载插件的所有内容类型
   ├── controllers # 特定于插件的控制器
   ├── index.js # 加载所有插件的控制器
   └── my-controller.js # 自定义控制器示例。您可以重命名或删除它。
   ├── middlewares # 特定于您的插件的中间件
   └── index.js # 加载所有插件的中间件
   ├── policies # 特定于您的插件的策略
   └── index.js # 加载所有插件的策略
   ├── routes # 特定于您的插件的路由
   └── index.js # 包含 my-controller 自定义控制器示例的示例路由
   └── services # 特定于您的插件的服务
   ├── index.js # 加载所有插件的服务
   └── my-service.js # 自定义服务示例。您可以重命名或删除它。
   ├── bootstrap.js # 插件注册后立即调用的函数
   ├── destroy.js # Strapi 实例销毁后调用以清理插件的函数
   ├── index.js # 加载所有服务器元素的代码
   └── register.js # 在引导之前调用以加载插件的函数。
├── package.json
├── README.md
├── strapi-admin.js # 管理面板的入口点(前端)
└── strapi-server.js # 服务器的入口点(后端)

Strapi 插件分为 2 个部分,每个部分位于不同的文件夹中并提供不同的 API:

插件部分说明文件夹API
管理面板包括 管理面板 中可见的内容(组件、导航、设置等)/admin管理面板 API
后端服务器包括与 后端服务器 相关的内容(内容类型、控制器、中间件等)/server服务器 API
关于不同部分对您的特定用例的实用性的说明
  • 仅限服务器的插件:您可以创建一个仅使用服务器部分的插件来增强应用程序的 API。例如,此插件可以具有自己的可见或不可见的内容类型、控制器操作和路由,这些对于特定用例很有用。在这种情况下,您不需要您的插件在管理面板中有一个界面。
  • 管理面板插件与特定于应用程序的自定义:您可以创建一个插件来将一些组件注入管理面板。但是,您也可以通过创建 ./src/admin/app.js 文件并调用 bootstrap 生命周期函数来注入您的组件来实现这一点。在这种情况下,决定是否创建插件取决于您是否计划重用和分发代码,或者它是否仅适用于独特的 Strapi 应用程序。
接下来阅读什么?

Strapi 插件开发之旅的下一步将需要您使用任何 Strapi 插件 API。

2 种不同类型的资源可帮助您了解如何使用插件 API: