build(tsup): add @zen/core/api to external list and document rule

- Add `@zen/core/api` to the `external` array in `tsup.config.js` to
  prevent build failures caused by unresolved `dist/` imports at build time
- Document the externals rule in `docs/DEV.md`: any `@zen/core/*` import
  used in bundled module files must be declared as external, with an
  explanation of why and a code example to follow
This commit is contained in:
2026-04-13 15:16:02 -04:00
parent df9378cae0
commit 060eb367d8
2 changed files with 21 additions and 1 deletions
+20
View File
@@ -32,6 +32,26 @@ Pour les conventions de commit : [COMMITS.md](./dev/COMMITS.md).
---
## Build et configuration tsup
### Règle des externals
Tout import de la forme `@zen/core/*` dans un fichier bundlé par tsup (typiquement `src/modules/*/api.js`, `src/modules/*/actions.js`, `src/modules/*/crud.js`) **doit figurer dans la liste `external`** du premier bloc de config dans `tsup.config.js`.
Pourquoi : tsup tente de résoudre ces imports au moment du build. Or les fichiers `dist/` n'existent pas encore — le build échoue avec `Could not resolve "@zen/core/..."`.
**Règle :** quand on crée ou refactorise un module `src/core/*/index.js` exposé via `package.json` `exports`, on ajoute immédiatement l'entrée correspondante dans `external` de `tsup.config.js`.
```js
// tsup.config.js — external (premier bloc)
'@zen/core/api', // ← à ajouter si src/core/api/index.js est un entry tsup
'@zen/core/database',
'@zen/core/storage',
// etc.
```
---
## Sécurité
### Données entrantes