Skip to content

Phase 1 - Test : Configuration Mode Hybride et Types Sanity

Phase 1 - Test : Configuration Mode Hybride et Types Sanity

Documentation technique

Phase : 1 - Configuration Mode Hybride et Types Sanity
Cycle : DOC → SPEC → CODE → TEST → INTÉG
Statut : En cours

1. Contexte

Cette phase a pour objectif de configurer le mode hybride Astro (static par défaut, SSR à la demande) et d’activer la génération des types Sanity pour le Studio.

1.1. Changements effectués

Configuration Sanity Studio (apps/studio/sanity.cli.ts) :

  • Activé schemaExtraction.enabled: true pour générer le schéma Sanity
  • Activé typegen.enabled: true pour générer les types TypeScript

Documentation mise à jour :

  • docs/L2_Presentation/astro/config/config.objectData.md - Documenté le mode hybride
  • docs/L2_Presentation/astro/config/phase1-config-ssg-types.spec.md - SPEC corrigée

2. Test du schéma Sanity

2.1. Génération du schéma

Terminal window
cd apps/studio
npx sanity schema extract

Attendu :

  • Fichier schema.json généré dans apps/studio/
  • Message de succès : ✔ Extracted schema to /home/anderson/PP/apps/studio/schema.json

2.2. Vérification du schéma

Terminal window
ls -la apps/studio/schema.json

Attendu :

  • Fichier schema.json existe
  • Taille > 0 (environ 37KB)

3. Test des types Sanity

3.1. Génération des types

Terminal window
cd apps/studio
npx sanity typegen generate

Attendu :

  • Fichier sanity.types.ts généré dans apps/studio/
  • Message de succès : ✔ Successfully generated types to ./sanity.types.ts
  • Types générés pour tous les schémas Sanity

3.2. Vérification des types

Terminal window
ls -la apps/studio/sanity.types.ts

Attendu :

  • Fichier sanity.types.ts existe
  • Taille > 0 (environ 6KB)

4. Test du build Astro

4.1. Build en mode hybride

Terminal window
cd apps/web
npx pnpm@12.3.4 build

Attendu :

  • Build réussi sans erreurs
  • Message de succès : [build] Complete!
  • Mode hybride actif : output: "server" avec mode: "server"
  • Pages statiques pré-rendues dans dist/
  • Avertissement sur les pages dynamiques sans prerender = true (normal)

4.2. Vérification du build

Terminal window
ls -la apps/web/dist/

Attendu :

  • Dossier dist/ créé
  • Fichiers statiques générés (HTML, CSS, JS)
  • Fichiers de configuration Cloudflare générés

5. Test du mode hybride

5.1. Vérification de la configuration

Terminal window
cat apps/web/astro.config.mjs | grep -A 2 "output"

Attendu :

  • output: 'server' (mode hybride avec adaptateur Cloudflare)
  • Adaptateur Cloudflare configuré

5.2. Vérification de l’adaptateur

Terminal window
cat apps/web/astro.config.mjs | grep -A 5 "adapter"

Attendu :

  • Adaptateur @astrojs/cloudflare configuré
  • imageService: 'passthrough'
  • prerenderEnvironment: 'node'

6. Test de l’intégration

6.1. Vérification des fichiers générés

Terminal window
ls -la apps/studio/schema.json apps/studio/sanity.types.ts

Attendu :

  • schema.json existe
  • sanity.types.ts existe

6.2. Vérification de la documentation

Terminal window
cat docs/L2_Presentation/astro/config/config.objectData.md | grep -A 2 "Mode de rendu"

Attendu :

  • Documentation à jour : “Hybrid (static par défaut, SSR à la demande via prerender = false)”

7. Résultats des tests

7.1. Schéma Sanity

  • ✅ schema.json généré avec succès
  • ✅ Taille : 37KB
  • ✅ Contient tous les schémas Sanity

7.2. Types Sanity

  • ✅ sanity.types.ts généré avec succès
  • ✅ Taille : 6KB
  • ✅ Types générés pour 20 schémas

7.3. Build Astro

  • ✅ Build réussi sans erreurs
  • ✅ Mode hybride actif
  • ✅ Pages statiques pré-rendues
  • ⚠️ Avertissement sur la page /src/pages/blog/[...slug].astro (normal en mode hybride)

7.4. Documentation

  • ✅ Documentation mise à jour
  • ✅ SPEC corrigée

8. Conclusion

La Phase 1 - Configuration Mode Hybride et Types Sanity est terminée avec succès.

8.1. Changements effectués1/2

  1. Configuration Sanity Studio :

    • Schema extraction activé
    • Typegen activé
    • Schéma et types générés
  2. Documentation :

    • Mode hybride documenté
    • SPEC corrigée

8.1. Changements effectués2/2

  1. Tests :

    • Schéma Sanity généré
    • Types Sanity générés
    • Build Astro réussi

8.2. Prochaines étapes

  • Passer à l’étape INTÉG pour valider l’intégration
  • Continuer les phases suivantes selon le plan

9. Notes importantes

  • Le mode hybride Astro utilise output: 'server' avec l’adaptateur Cloudflare
  • Les pages statiques doivent avoir export const prerender = true pour être pré-rendues
  • Les pages dynamiques doivent avoir export const prerender = false pour être rendues à la demande
  • Sanity TypeGen est configuré pour le Studio, pas pour le web app
  • Les types générés sont utilisés par le Studio pour la validation de type

10. Historique des modifications

Date Version Description Auteur
2026-09-16 1.0 Création initiale Devin
Switch to normal mode

Contents