Skip to content

[bug]: TypeScript Export Path Issue with Strapi Plugin Build #96

@deivydarwoft

Description

@deivydarwoft

What version of @strapi/sdk-plugin are you using?

  • Npm version: 10.8.2
  • Node.js version: 20.18.3
  • React version: 18.3.1
  • Strapi version: 5.23.3
  • @strapi/sdk-plugin version: 5.3.2
  • Browser: Chrome

What's Wrong?

When building a Strapi plugin with TypeScript, the generated type definitions (.d.ts) are placed in a nested folder (e.g. dist/<plugin-name>/admin/src/index.d.ts).

However, the default package.json configuration expects the types in dist/admin/src/index.d.ts and dist/server/src/index.d.ts, causing verification errors when running the script:

"verify": "strapi-plugin verify"

The error output:

[ERROR]  Missing files for exports:
    ./dist/admin/src/index.d.ts
    ./dist/server/src/index.d.ts
Image

To Reproduce

  1. Create or update a Strapi plugin with TypeScript in a monorepo (Nx or similar).

  2. Use the default build scripts and tsconfig.build.json.

  3. Run the build and verify commands:

    npm run build
    npm run verify
  4. Observe that the type files are generated in dist/<plugin-name>/admin/src and dist/<plugin-name>/server/src.

  5. The verification fails due to missing files in the expected export paths.

Expected Behaviour

  • The plugin build should generate type files in the exact paths expected by the package.json exports field, or the package.json should be updated to match the actual output structure.

  • After updating the package.json to:

    "types": "./dist/<plugin-name>/admin/src/index.d.ts"

    and

    "types": "./dist/<plugin-name>/server/src/index.d.ts"

    the verification passes and the plugin works as expected

Additional Notes

  • If you run watch: strapi-plugin watch before running verify, the verification will pass without errors. This is because the watch command generates the type files in the expected locations before verification.

Metadata

Metadata

Assignees

No one assigned

    Labels

    issue: bugIssue reporting a bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions