Skip to main content

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.