Strapi factories import have been updated
In Strapi 5, strapi factories import have been updated.
This page is part of the breaking changes database and provides information about the breaking change and additional instructions to migrate from Strapi v4 to Strapi 5.
🔌 Is this breaking change affecting plugins? | Yes |
---|
🤖 Is this breaking change automatically handled by a codemod? | Partly |
---|
Breaking change description​
In Strapi v4
Imports are done as follows:
-
using the application init function:
import strapi from '@strapi/strapi';
// or
const strapi = require('@strapi/strapi');
strapi(); -
using the factories:
import strapiDefault from '@strapi/strapi';
// or
import { factories } from '@strapi/strapi';
// or
const { factories } = require('@strapi/strapi');
// or
const { createCoreService } = require('@strapi/strapi').factories;
// or
const strapi = require('@strapi/strapi');
strapiDefault.factories.createCoreService(); // this is not possible anymore in v5
strapi.factories.createCoreService();
factories.createCoreService();
createCoreService();
In Strapi 5
Imports are done as follows:
-
using the application init function
import { createStrapi } from '@strapi/strapi';
const { createStrapi } = require('@strapi/strapi');
const strapi = require('@strapi/strapi');
strapi.createStrapi(); -
using the factories:
// Using the factories
import { factories } from '@strapi/strapi';
// or
const { factories } = require('@strapi/strapi');
// or
const { createCoreService } = require('@strapi/strapi').factories;
// or
const strapi = require('@strapi/strapi');
strapi.factories.createCoreService();
factories.createCoreService();
createCoreService();
// The recommended way is
const { factories } = require('@strapi/strapi');
import { factories } from '@strapi/strapi';
factories.createCoreService();
Migration​
- The upgrade tool converts the application instantiation with a codemod.
- The factories pattern that were removed will not be converted automatically.