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

Abierto
#91 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 6 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
typescript
Área
cli, tooling

Línea de trabajo

Start with src/cli/commands/plugin/init/action.ts and src/cli/commands/plugin/init/files/admin.ts, especially the marked TODO sections. Run npx @strapi/sdk-plugin@latest init and inspect the generated package versions and admin/custom.d.ts. Done means the init path no longer causes unintended RC use or suppresses design-system type errors, with the intended behavior verified.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

issue: bug severity: medium source: sdk-plugin status: pending reproduction version: 5
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.
Lenguaje dominante
TypeScript
Estrellas
24
Forks
13
Merge medio
5 d 3 h
PR fusionados (30 d)
5

Preparar el entorno

  • Sin Dockerfile ni archivo de Docker Compose
  • Tiene una plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de strapi/sdk-plugin

Todos los issues de strapi/sdk-plugin

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.