-
Notifications
You must be signed in to change notification settings - Fork 7
Description
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
Labels
Type
Projects
Status