[bug]: TypeScript Export Path Issue with Strapi Plugin Build
Maintainers usually reply within 6 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 56/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- typescript
- Domain
- build-system, cli
Research direction
Start with package.json exports, tsconfig.build.json, and the default build and verify scripts. Run npm run build followed by npm run verify and compare the generated dist//admin/src and server/src declarations with the export paths. Done means the build output and package.json agree so verification passes without running watch first.
Written by the indexing model from the issue text.
Description
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
To Reproduce
-
Create or update a Strapi plugin with TypeScript in a monorepo (Nx or similar).
-
Use the default build scripts and
tsconfig.build.json. -
Run the build and verify commands:
npm run build npm run verify -
Observe that the type files are generated in
dist/<plugin-name>/admin/srcanddist/<plugin-name>/server/src. -
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.jsonexports field, or thepackage.jsonshould be updated to match the actual output structure. -
After updating the
package.jsonto:"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 watchbefore runningverify, the verification will pass without errors. This is because the watch command generates the type files in the expected locations before verification.
- Dominant language
- TypeScript
- Stars
- 24
- Forks
- 13
- Avg merge
- 5d 3h
- Merged PRs (30d)
- 5
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from strapi/sdk-plugin
-
Difficulty 4/5 Half a day Newbie friendliness 15/100
strapi/sdk-plugin#244 ·
Maintainers usually reply within 6 days
-
[bug]: build ignores exports file names and package.json#type, breaking "type": "module" pluginsPossibly taken @unrevised6419 claimed this 43 days ago. Open
Difficulty 4/5 3-5 days Newbie friendliness 45/100
strapi/sdk-plugin#242 ·
Maintainers usually reply within 6 days
-
Difficulty 4/5 3-5 days Newbie friendliness 55/100
strapi/sdk-plugin#241 ·
Maintainers usually reply within 6 days
-
[feat]: build a subset of bundles with --bundle, for per-bundle task cachingPossibly taken @unrevised6419 claimed this 51 days ago. Open
Difficulty 4/5 3-5 days Newbie friendliness 35/100
strapi/sdk-plugin#238 ·
Maintainers usually reply within 6 days
-
[bug]: When building with latest sdk-plugin version, I loose sub folders typesMay be free again @jhoward1994 claimed this 247 days ago, and no pull request is open. Openissue: bug
strapi/sdk-plugin#115 · 2 comments · 1 assignee ·
Maintainers usually reply within 6 days
All issues in strapi/sdk-plugin
Similar issues
-
Add: BOM CineOpenapproved check:passed streams:add
Difficulty 1/5 Under an hour Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
bug platform-android
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Termix-SSH/Mobile#146 · 1 comment ·
Maintainers usually reply within 2 days
-
MCP mcp-feedback-pattern
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
getsentry/toolkit#2276 · 1 comment ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
devswha/herdr-web-ui#3875 ·