管理面板扩展

页面摘要: 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 参考)。

NOTE

本节介绍 /src/admin 下的管理面板包。要更改核心插件的服务器行为(例如在浏览 /admin/plugins/upload 时使用的上传 API),请按照插件扩展中的说明,使用 ./src/extensions/<plugin-name>/strapi-server.js|ts。

何时考虑改用插件

对于特定项目需求,从 /src/admin/app 直接自定义是正确的默认做法。当出现以下一个或多个信号时,可考虑转向基于插件的方式:

  • 你正在多个 Strapi 项目中重复相同的管理面板自定义。
  • 你希望对扩展进行版本管理并分发——无论是内部还是通过 Strapi Marketplace。
  • 你需要更强的、独立于单一项目代码库的自动化测试。
  • 多个团队需要对同一扩展进行共享归属与发布管理。

有关插件开发的完整介绍,请参阅开发 Strapi 插件。

其他资源
  • 如果你正在寻找替换默认富文本编辑器的方法,请参阅相应页面。
  • 要了解插件如何与 Strapi 管理面板集成,请从管理面板 API 概览开始。