Downgrade Vite 8 → 7.3.6 pour corriger les erreurs d'optimisation
Contexte (DOC)
Section titled “Contexte (DOC)”Problème rencontré
Section titled “Problème rencontré”Lors du développement avec Sanity Visual Editing, le serveur de développement local crashait avec des erreurs du type :
The file does not exist at ".../apps/web/node_modules/.vite/deps_ssr/handler-Cb452HQC.js"Cause identifiée
Section titled “Cause identifiée”- Astro 7.3.4 utilise Vite 8.3.0 par défaut avec Rolldown comme optimiseur de dépendances
- L’optimisation des dépendances avec Rolldown semble instable avec la combinaison :
- Astro Cloudflare adapter
- Sanity Visual Editing (
@sanity/visual-editing,@sanity/visual-editing/react) - React 19
- Les fichiers optimisés disparaissaient du cache
node_modules/.vite/deps_ssrpendant le développement
Tentatives précédentes
Section titled “Tentatives précédentes”- Ajout de
optimizeDeps.includepour forcer le prébundling des packages Sanity/React- Cela a aggravé les problèmes de cache invalidation
- Suppression de la configuration
optimizeDeps- Le problème persistait
Spécification (SPEC)
Section titled “Spécification (SPEC)”Solution choisie
Section titled “Solution choisie”Downgrader Vite de 8.3.0 à 7.3.6 (la dernière version stable de Vite 7).
Justification
Section titled “Justification”- Vite 7 est une version mature et stable (publiée le 25 juin 2026)
- Vite 7 utilise Rollup classique pour l’optimisation des dépendances (plus stable que Rolldown)
- Astro 7 officiellement supporte Vite 7 (bien que Vite 8 soit la nouvelle par défaut)
- Les packages Sanity et React sont compatibles avec Vite 7
- C’est une solution temporaire en attendant une meilleure compatibilité entre Vite 8/Rolldown et Sanity Visual Editing
Changements apportés
Section titled “Changements apportés”- Dépendance directe : Ajout de
vite: "7.3.6"dansapps/web/package.json - Configuration Vite : Ajout de
@sanity/visual-editing/reactdansssr.noExternaldansastro.config.mjs - Nettoyage : Suppression du cache Vite (
apps/web/node_modules/.vite) et réinstallation complète des dépendances
Compatibilité
Section titled “Compatibilité”- ✅ Astro 7.3.4
- ✅ @astrojs/cloudflare 14.3.1
- ✅ @sanity/astro (dernière version)
- ✅ @sanity/visual-editing (dernière version)
- ✅ React 19.3.0
- ✅ Cloudflare Workers/Pages
Implications
Section titled “Implications”- ⚠️ Performance : Vite 7 peut être légèrement plus lent que Vite 8 pour le cold start
- ⚠️ Dépréciations : Certains avertissements d’esbuild/Rolldown persistent mais ne bloquent pas le fonctionnement
- ⚠️ Avenir : Cette solution est temporaire. Il faudra réévaluer quand :
- Astro améliore la compatibilité Vite 8/Rolldown
- Sanity confirme la compatibilité avec Vite 8/Rolldown
- L’issue https://github.com/sanity-io/sanity/issues/2238 est résolue
Implémentation (CODE)
Section titled “Implémentation (CODE)”Fichiers modifiés
Section titled “Fichiers modifiés”-
apps/web/package.json
{"dependencies": {"vite": "7.3.6"}} -
apps/web/astro.config.mjs
vite: {ssr: {noExternal: ['@sanity/preview-url-secret','@sanity/client','@sanity/astro','@sanity/visual-editing','@sanity/visual-editing/react' // Ajouté],},}
Procédure d’installation
Section titled “Procédure d’installation”# Nettoyer le cache Viterm -rf apps/web/node_modules/.vite
# Réinstaller les dépendancestask install# ounpx pnpm@12.3.4 installTests (TEST)
Section titled “Tests (TEST)”Validation locale
Section titled “Validation locale”# Typechecktask typecheck# ✅ Résultat : 0 erreurs
# Buildtask build# ✅ Résultat : Build réussi (avec avertissements non bloquants)
# Dev servertask dev# ✅ Résultat : Serveur démarré sur http://localhost:4321# ✅ Aucune erreur de fichier manquant dans .vite/deps_ssrTests fonctionnels
Section titled “Tests fonctionnels”- ✅ Accès à
/blog/welcome-to-ocisans crash - ✅ Optimisation des dépendances Sanity réussie
- ✅ Reload automatique lors des changements de fichiers
Avertissements observés (non bloquants)
Section titled “Avertissements observés (non bloquants)”[vite] warning: `esbuild` option was specified by "vite:react-babel" plugin. This option is deprecated, please use `oxc` instead.[vite] warning: `optimizeDeps.esbuildOptions` option was specified by "vite:react-babel" plugin. This option is deprecated, please use `optimizeDeps.rolldownOptions` instead.Ces avertissements proviennent du plugin vite:react-babel et n’impactent pas le fonctionnement.
Intégration (INTÉG)
Section titled “Intégration (INTÉG)”Validation du workflow GitHub Actions
Section titled “Validation du workflow GitHub Actions”Le workflow .github/workflows/deploy-dev.yml utilise :
- run: pnpm install --frozen-lockfile- run: pnpm run buildCes commandes fonctionneront avec le nouveau lockfile car :
pnpm-lock.yamla été mis à jour avec Vite 7.3.6- Le build passe localement et devrait passer en CI
- Les secrets Sanity et Cloudflare sont injectés via les variables d’environnement du workflow
Checklist avant commit
Section titled “Checklist avant commit”- Vite 7.3.6 installé comme dépendance directe
- Lockfile mis à jour
- Build local réussi
- Typecheck réussi
- Dev server local stable
- Aucun crash d’optimisation de dépendances
- Lint réussi
- Tests réussis
- Documentation mise à jour
Migration future vers Vite 8
Section titled “Migration future vers Vite 8”Quand revenir à Vite 8 ?
-
Surveiller les issues :
-
Tester après mises à jour :
- Nouvelle version d’Astro (7.4+)
- Nouvelle version de Sanity (6.17+)
- Nouvelle version de @sanity/visual-editing
-
Procédure de retour à Vite 8 :
Terminal window # Supprimer la dépendance directepnpm remove vite# Mettre à jour Astro pour la dernière versionpnpm add astro@latest# Nettoyer et réinstallerrm -rf node_modules pnpm-lock.yaml apps/web/node_modules/.vitepnpm install# Testertask build && task dev