Skip to content

[bug]: init uses RC versions and disables TypeScript for design-system v2 #91

@alecschmitzz

Description

@alecschmitzz

What version of design-system are you using?

v2

What's Wrong?

see this issue in the strapi project

When using the plugin init command, the SDK pulls in the release candidate (RC) version of @strapi/design-system, and at the same time disables TypeScript type checking by generating a custom.d.ts file that declares the entire module. This makes VSCode silently accept incorrect imports and breaks type safety.

Using
npx @strapi/sdk-plugin@latest init

It automatically sets up the plugin to use Design System V2 (RC). Specifically, in @strapi/sdk-plugin src/cli/commands/plugin/init/action.ts, there's this line:

// TODO: remove these when release versions are available
const USE_RC_VERSIONS: string[] = ['@strapi/design-system', '@strapi/icons'] as const;

This causes it to pull the RC (v2) versions of those packages.

Additionally, in the same package at src/cli/commands/plugin/init/files/admin.ts, it generates a custom.d.ts file using the following:

{
    /**
     * TODO: remove this when we release design-system V2
     */
    name: 'admin/custom.d.ts',
    contents: outdent`
        declare module '@strapi/design-system/*';
        declare module '@strapi/design-system';
    `,
  },

This effectively disables TypeScript support for the design system, which explains why VSCode didn’t catch my incorrect imports :(

To Reproduce

Run:

npx @strapi/sdk-plugin@latest init

Try using a design-system component with a wrong import, VSCode won’t show an error because types are completely bypassed.

Expected Behaviour

  • Either avoid using RC versions by default (unless explicitly opted in).
  • Or at least don’t disable type checking by generating a custom.d.ts that declares wildcard modules.
  • Ideally, wait until design-system v2 is stable before switching defaults in the SDK.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    Status

    To be reviewed (Open)

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions