插件升级摘要
页面摘要: 从 Strapi v4 升级到 Strapi 5 的插件开发者,必须迁移到 Plugin SDK(插件 SDK),从 Entity Service API 过渡到 Document Service API,更新前端代码以使用 Design System v2,并移除
helper-plugin依赖。
本页面旨在作为一份简短摘要,供作为插件开发者、正在将插件从 Strapi v4 升级到 Strapi 5 的你参考。页面快速描述了影响插件的变更,并在必要时链接到附加资源。
Plugin SDK
从 Strapi 5 开始,平台内置了 Plugin SDK(插件 SDK)来帮助开发和构建 Strapi 插件。虽然你可以自由使用其他方法开发插件,但我们强烈建议使用 Plugin SDK。作为从 v4 迁移到 Strapi 5 过程的一部分,我们鼓励你更新插件以利用 Plugin SDK 的优势。
迁移插件的推荐步骤
WARNING
你的 Strapi 应用已在运行最新的 v5 小版本(minor)和补丁(patch)版本。如果没有,请遵循 分步指南 升级到 Strapi 5。
将 Strapi v4 插件升级到 Strapi 5 包括:
- 使用 Plugin SDK 创建一个新的空插件。
- 将你的 Strapi v4 代码移动到新创建的文件(位于 Strapi 5 的 插件结构 中),同时考虑本页面所总结的变更。
此外,你也可以手动更新你的 Strapi v4 插件以使用 Plugin SDK。 手动步骤包括:
- 如果你的代码使用的不是 CommonJS 格式,请更新
package.json文件并指定合适的 exports 属性。 - 重新组织你的 Strapi v4 代码,以对齐 Strapi 5 的 插件结构
后端变更
- Strapi v4 的 Entity Service API 已被弃用,Strapi 5 改用 Document Service API。已提供一份 迁移指南 来帮助你过渡到 Document Service API。
- 通用的 Strapi v4 到 Strapi 5 的 破坏性变更 可能适用。
- 你可以使用新的 Plugin SDK 来生成插件,并将它们发布到 NPM 和/或提交到 Marketplace(市场)。
前端变更
- Design System 在 Strapi 5 中已升级到 v2:
- 👉 Design System 文档中提供了一份专属的迁移指南 可在 Design System 文档中查看。
- 除了 图标(icons) 之外,没有大的视觉变化。
- 通用的 Strapi v4 到 Strapi 5 的 破坏性变更 可能适用。
helper-plugin已被移除。已提供一份 迁移参考 来帮助你从helper-plugin迁移离开。- Strapi 不再为依赖项创建别名(alias)。所有面向客户端的代码预期使用的 4 个依赖项已在项目层级声明(
react、react-dom、styled-components和react-router-dom)。如果你不声明你所使用的依赖项(例如axios),用户在使用你的插件时可能会遇到不可预见的问题。 - 如果你正在使用 Plugin SDK,你将需要把前端文件转换为
.jsx或.tsx格式。
自定义提供方
Email 和 Upload 插件的自定义提供方(providers)仅在它们曾使用 Entity Service API 时才需要转换(请参阅 Entity Service API 到 Document Service API 迁移指南)。