管理面板扩展
页面摘要: Strapi 基于 React 的管理面板可通过
/src/admin/app在本地进行扩展,以满足特定项目需求;也可通过插件实现可在多个 Strapi 实例间复用的可分发扩展。
Strapi 的管理面板是一个基于 React 的单页应用,封装了 Strapi 应用的所有功能和已安装插件。如果 Strapi 提供的自定义选项无法满足你的使用场景,就需要扩展 Strapi 的管理面板。
扩展 Strapi 的管理面板意味着利用其 React 基础,根据项目的具体需求调整和增强界面与功能,这可能涉及创建新组件或添加新类型的字段。
有以下 2 种使用场景,你可能需要扩展管理面板:
| 方式 | 范围 | 入口点 | 文档 |
|---|---|---|---|
| 本地扩展 | 单个 Strapi 项目 | /src/admin/app.(js\|ts) 与 /src/admin/extensions/ | 管理面板自定义 |
| 插件扩展 | 安装你插件的所有项目 | [plugin-name]/admin/src/index.(js\|ts) | 管理面板 API 概览 |
-
作为一名 Strapi 插件开发者,你希望开发一个 Strapi 插件,使其在任意 Strapi 应用中安装时都能扩展管理面板。 👉 这可以通过利用面向插件的 Admin Panel API 来实现,它允许你添加导航链接和设置分区、将 React 组件注入预定义区域、使用 Redux 管理状态、扩展内容管理器的编辑视图和列表视图等。
-
作为一名 Strapi 开发者,你希望为只需扩展某个特定 Strapi 应用实例的用户开发定制化解决方案。 👉 这可以通过直接更新
/src/admin/app文件来实现,该文件可导入/src/admin/extensions中的任意文件。
在 Strapi 5 中,服务器默认以 watch-admin 模式运行,因此只要你更改管理面板代码,它就会自动重载。这简化了管理面板和前端插件的开发。要禁用它,请运行 yarn develop --no-watch-admin(参见 CLI 参考)。
本节介绍 /src/admin 下的管理面板包。要更改核心插件的服务器行为(例如在浏览 /admin/plugins/upload 时使用的上传 API),请按照插件扩展中的说明,使用 ./src/extensions/<plugin-name>/strapi-server.js|ts。
何时考虑改用插件
对于特定项目需求,从 /src/admin/app 直接自定义是正确的默认做法。当出现以下一个或多个信号时,可考虑转向基于插件的方式:
- 你正在多个 Strapi 项目中重复相同的管理面板自定义。
- 你希望对扩展进行版本管理并分发——无论是内部还是通过 Strapi Marketplace。
- 你需要更强的、独立于单一项目代码库的自动化测试。
- 多个团队需要对同一扩展进行共享归属与发布管理。
有关插件开发的完整介绍,请参阅开发 Strapi 插件。
- 如果你正在寻找替换默认富文本编辑器的方法,请参阅相应页面。
- 要了解插件如何与 Strapi 管理面板集成,请从管理面板 API 概览开始。