SPEC : Phase 1 - Configuration Mode Hybride (Static par défaut, SSR à la demande)
Phase : 1 - Configuration Mode Hybride
Cycle : DOC → SPEC → CODE → TEST → INTÉG
Statut : ✅ TERMINÉ
1. Contrats d’entrée
Section titled “1. Contrats d’entrée”1.1. Configuration Astro (astro.config.mjs)
Section titled “1.1. Configuration Astro (astro.config.mjs)”Entrée : Fichier de configuration Astro actuel
État actuel :
output: 'server' // Mode SSR actuelSortie attendue :
output: 'server' // Hybride : static par défaut, SSR à la demandeRègles :
- Garder
output: 'server'(adaptateur Cloudflare force ce mode) - Garder
session: false - Garder l’adaptateur Cloudflare
- Utiliser
export const prerender = truesur les pages statiques pour les pré-rendre
Validation :
- Build réussi avec
npm run build - Pages statiques pré-rendues dans
dist/ - Pages dynamiques (preview) rendues à la demande
1.2. Configuration sanity-typegen
Section titled “1.2. Configuration sanity-typegen”Entrée : Schémas Sanity existants (post, author, category, blockContent, amn, submission)
Sortie attendue :
- Sanity typegen activé dans
apps/studio/sanity.cli.ts - Schéma Sanity extrait automatiquement (
schema.json) - Types générés pour le Studio
Règles :
- Activer
schemaExtraction.enabled: truedanssanity.cli.ts - Activer
typegen.enabled: truedanssanity.cli.ts(pour le Studio)
Validation :
- Fichier
schema.jsongénéré dansapps/studio/ - Types générés pour le Studio
2. Contrats de sortie
Section titled “2. Contrats de sortie”2.1. Build Astro
Section titled “2.1. Build Astro”Sortie : Build réussi en mode hybride
Attendu :
- Pas d’erreurs de build
- Pages statiques pré-rendues dans
dist/ - Pages dynamiques prêtes pour le rendu à la demande
2.2. Types Sanity
Section titled “2.2. Types Sanity”Sortie : Schéma et types générés pour le Studio
Attendu :
- Fichier
schema.jsongénéré dansapps/studio/ - Types générés pour le Studio
3. Side effects
Section titled “3. Side effects”3.1. Mode hybride
Section titled “3.1. Mode hybride”Effet : Static par défaut, SSR à la demande
Impact :
- Les pages sont pré-rendues au build par défaut
- Les pages avec
prerender = falsesont rendues à la demande - Le mode preview nécessite
prerender = falsesur les pages concernées
3.2. Schéma et types Sanity
Section titled “3.2. Schéma et types Sanity”Effet : Schéma et types générés automatiquement
Impact :
- Le Studio peut générer automatiquement le schéma
- Types disponibles pour le développement du Studio
4. Erreurs et gestion
Section titled “4. Erreurs et gestion”4.1. Erreurs potentielles
Section titled “4.1. Erreurs potentielles”| Erreur | Cause probable | Solution |
|---|---|---|
| Build échoue | Configuration incorrecte de l’adaptateur | Vérifier la configuration Cloudflare |
| Schéma non généré | Schema extraction désactivé | Activer schemaExtraction.enabled: true |
| Types non générés | Typegen désactivé | Activer typegen.enabled: true |
4.2. Codes HTTP
Section titled “4.2. Codes HTTP”Non applicable (phase de configuration)
5. Checklist de validation
Section titled “5. Checklist de validation”Avant de passer à l’étape CODE, vérifier :
- La documentation de la configuration est à jour
- Les contrats d’entrée/sortie sont documentés
- Les side effects sont identifiés
- Les erreurs potentielles sont documentés
6. Approbation
Section titled “6. Approbation”Validation requise : Confirmer que la phase 1 (Configuration Mode Hybride) peut passer à l’étape CODE.
7. Historique des modifications
Section titled “7. Historique des modifications”| Date | Version | Description | Auteur |
|---|---|---|---|
| 2026-09-16 | 1.0 | Création initiale | Devin |
| 2026-09-16 | 1.1 | Correction : Mode hybride au lieu de SSG pur | Devin |
| 2026-09-16 | 1.2 | Phase terminée avec succès | Devin |
8. Résultats de l’implémentation
Section titled “8. Résultats de l’implémentation”8.1. Changements effectués
Section titled “8.1. Changements effectués”Configuration Sanity Studio (apps/studio/sanity.cli.ts) :
- ✅ Schema extraction activé (
schemaExtraction.enabled: true) - ✅ Typegen activé (
typegen.enabled: true) - ✅ Schéma généré (
schema.json- 37KB) - ✅ Types générés (
sanity.types.ts- 6KB, 20 types)
Documentation :
- ✅
config.objectData.mdmis à jour (mode hybride documenté) - ✅ SPEC corrigée et terminée
- ✅ Documentation de test créée (
GettingStarted/05-phase1-config-hybride-types.md)
Configuration Git :
- ✅
.gitignoremis à jour pour ignorersanity.types.ts
8.2. Tests effectués
Section titled “8.2. Tests effectués”- ✅ Schéma Sanity généré avec succès
- ✅ Types Sanity générés avec succès
- ✅ Build Astro réussi en mode hybride
- ✅ Pages statiques pré-rendues
- ✅ Mode hybride validé
8.3. Conclusion
Section titled “8.3. Conclusion”La Phase 1 - Configuration Mode Hybride et Types Sanity est terminée avec succès. Le mode hybride Astro est configuré correctement et la génération des types Sanity est opérationnelle pour le Studio.