Skip to content

Feature request: Backport Node.js 24 engine support to 5.x #1

@joaoprcosta

Description

@joaoprcosta

Feature request: Backport Node.js 24 engine support to 5.x

Is your feature request related to a problem? Please describe.

@strapi/sdk-plugin@5.x declares "node": ">=18.0.0 <=22.x.x" in its engines field, which produces an EBADENGINE warning on Node.js 24:

npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@strapi/sdk-plugin@5.4.0',
npm warn EBADENGINE   required: { node: '>=18.0.0 <=22.x.x', npm: '>=6.0.0' },
npm warn EBADENGINE   current:  { node: 'v24.x.x', npm: '11.x.x' }
npm warn EBADENGINE }

Issue #101 was resolved by removing the upper bound on main (v6.0.0), but the fix was not backported to the 5.x release line. Upgrading to v6 is not viable for projects that:

  • Rely on packup.config.ts for custom build configuration (removed in v6 in favor of package.json exports-derived config).
  • Are pinned to v5 by a transitive Strapi dependency or plugin compatibility constraint.
  • Cannot adopt the v6 build-system breaking changes on their current release schedule.

For these consumers, v5 is effectively the last supported line, and the artificial Node 22 upper bound blocks them from moving to Node.js 24 LTS — which Strapi core itself supports since v5.31 (strapi/strapi#24586).

Describe the solution you'd like

Release a 5.x patch (e.g. 5.4.1 or 5.5.0) that updates the engines field to allow Node.js 24:

"engines": {
  "node": ">=18.0.0",
  "npm": ">=6.0.0"
}

This is the same change that landed on main in v6.0.0 and should be a low-risk, engines-only patch — no source changes required if CI on 5.x passes on Node 24.

Ideally this would also include:

  • Adding Node 24 to the CI matrix for the 5.x branch.
  • A note in the v5 changelog/README clarifying supported Node versions.

Describe alternatives you've considered

  • Upgrading to v6 — blocked by the packup.config.ts removal / build-system breaking changes.
  • Forking and patching engines locally (via pnpm.overrides / npm overrides / patch-package) — works but isn't sustainable for teams and doesn't help the wider community hitting the same wall.
  • Running with --engine-strict=false — silences the warning but obscures genuine engine mismatches and doesn't help in environments where strict engine checks are enforced (some CI setups, Docker base images, corporate registries).

Additional context

Environment

  • @strapi/sdk-plugin version: <e.g. 5.4.0>
  • Reason v6 is not an option: <e.g. "uses packup.config.ts" / "pinned by Strapi x.y.z">
  • Node.js version: <e.g. v24.11.0>
  • npm version: <e.g. 11.4.2>
  • OS: <e.g. macOS 14.5 / Ubuntu 24.04>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions