Strapi 工厂导入已更新
页面摘要: 在 Strapi 5 中,应用 init 函数和工厂的导入语法已更新;请使用来自
@strapi/strapi的createStrapi而非 v4 的写法,并且部分遗留导入模式不再受支持。
在 Strapi 5 中,strapi 工厂导入已更新。
本页面是破坏性变更数据库的一部分,提供有关该破坏性变更的信息,以及从 Strapi v4 迁移到 Strapi 5 的附加说明。
代码迁移工具: strapi-public-interface
破坏性变更说明
在 Strapi v4 中
导入方式如下:
-
使用应用 init 函数:
import strapi from '@strapi/strapi'; // 或 const strapi = require('@strapi/strapi'); strapi(); -
使用工厂:
import strapiDefault from '@strapi/strapi'; // 或 import { factories } from '@strapi/strapi'; // 或 const { factories } = require('@strapi/strapi'); // 或 const { createCoreService } = require('@strapi/strapi').factories; // 或 const strapi = require('@strapi/strapi'); strapiDefault.factories.createCoreService(); // 这在 v5 中不再可能 strapi.factories.createCoreService(); factories.createCoreService(); createCoreService();
在 Strapi 5 中
导入方式如下:
-
使用应用 init 函数
import { createStrapi } from '@strapi/strapi'; const { createStrapi } = require('@strapi/strapi'); const strapi = require('@strapi/strapi'); strapi.createStrapi(); -
使用工厂:
// 使用工厂 import { factories } from '@strapi/strapi'; // 或 const { factories } = require('@strapi/strapi'); // 或 const { createCoreService } = require('@strapi/strapi').factories; // 或 const strapi = require('@strapi/strapi'); strapi.factories.createCoreService(); factories.createCoreService(); createCoreService(); // 推荐的方式是 const { factories } = require('@strapi/strapi'); import { factories } from '@strapi/strapi'; factories.createCoreService();
迁移
- 升级工具 会用 codemod 转换应用实例化。
- 被移除的工厂模式不会被自动转换。