58 lines
3.0 KiB
Markdown
58 lines
3.0 KiB
Markdown
<!-- file: docs/rules/530-WEB_FRONTEND.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Frontend Web local Knowledge
|
|
|
|
## Scope
|
|
|
|
Cet owner regroupe les contrats Web réellement utilisés par Knowledge : TypeScript, npm, Vite, Sass, Bootstrap et l'articulation entre le template statique de référence et le rendu runtime Maud.
|
|
|
|
Il remplace, pour le développement courant de Knowledge, la nécessité de relire plusieurs profils Web externes séparés.
|
|
|
|
## Package et dépendances
|
|
|
|
Le package de référence est `Web/knowledge-template-lab/` et utilise npm. `package.json` possède les scripts explicites `typecheck`, `dev`, `build` et `preview` nécessaires au workflow courant.
|
|
|
|
`package-lock.json` est versionné. `node_modules/`, caches Vite et sorties de build restent générés et hors Git.
|
|
|
|
Les versions de dépendances sont décidées dans le package Knowledge ; aucune version externe n'est adoptée automatiquement parce qu'un template ou référentiel plus récent existe.
|
|
|
|
## TypeScript
|
|
|
|
Le frontend utilise TypeScript strict. Le typecheck doit couvrir le code applicatif et la configuration Vite selon les `tsconfig` locaux.
|
|
|
|
Une dépendance de types n'est ajoutée que lorsqu'elle est réellement nécessaire à l'IDE, au compilateur ou au package consommé.
|
|
|
|
## Vite
|
|
|
|
`vite.config.ts` est le propriétaire de `root`, `base`, cache, dev server, preview, outputs et manifest. Les caches et builds sont dirigés vers les outputs Knowledge hors source.
|
|
|
|
Le build de production doit générer un manifest machine-readable et conserver l'entrée stable `src/main.ts`. Les noms d'assets hashés ne sont pas codés en dur dans le backend Rust.
|
|
|
|
## Sass et Bootstrap
|
|
|
|
Sass est la chaîne de styles sélectionnée et Bootstrap est un choix local Knowledge. Les warnings de dépréciation provenant d'une dépendance tierce sont suivis comme dette/compatibilité mais ne deviennent bloquants que si la gate locale l'exige ou s'ils annoncent une rupture effective de la toolchain retenue.
|
|
|
|
## Template statique et Maud
|
|
|
|
Le template sous `Web/knowledge-template-lab/` sert de harness de conception et de validation. Il ne constitue pas une seconde implémentation runtime.
|
|
|
|
Le markup de production est rendu par `knowledge-web-lib` avec Maud. L'adaptation depuis le template doit préserver les contrats utiles de structure, classes, attributs et assets.
|
|
|
|
En développement, `KNOWLEDGE_VITE_DEV_ORIGIN` fournit l'origin Vite. En production, `KNOWLEDGE_VITE_MANIFEST_PATH` désigne le manifest et `KNOWLEDGE_ASSET_BASE_PATH` peut remplacer le préfixe public.
|
|
|
|
## Validation
|
|
|
|
Lorsqu'un changement touche le package Web ou son contrat d'intégration, la preuve normale est :
|
|
|
|
```bash
|
|
(
|
|
cd Web/knowledge-template-lab
|
|
npm ci
|
|
npm run typecheck
|
|
npm run build
|
|
)
|
|
```
|
|
|
|
Les smokes Actix/Maud pertinents sont ajoutés lorsqu'un changement touche réellement le runtime ou la résolution d'assets. Une tranche exclusivement documentaire ou Rust sans diff Web ne rejoue pas automatiquement le build frontend si aucune preuve n'est invalidée.
|