Skip to content

Downgrade Vite 8 → 7.3.6 pour corriger les erreurs d'optimisation

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"
  • 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_ssr pendant le développement
  • Ajout de optimizeDeps.include pour 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

Downgrader Vite de 8.3.0 à 7.3.6 (la dernière version stable de Vite 7).

  • 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
  1. Dépendance directe : Ajout de vite: "7.3.6" dans apps/web/package.json
  2. Configuration Vite : Ajout de @sanity/visual-editing/react dans ssr.noExternal dans astro.config.mjs
  3. Nettoyage : Suppression du cache Vite (apps/web/node_modules/.vite) et réinstallation complète des dépendances
  • ✅ 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
  • ⚠️ 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 :
  1. apps/web/package.json

    {
    "dependencies": {
    "vite": "7.3.6"
    }
    }
  2. apps/web/astro.config.mjs

    vite: {
    ssr: {
    noExternal: [
    '@sanity/preview-url-secret',
    '@sanity/client',
    '@sanity/astro',
    '@sanity/visual-editing',
    '@sanity/visual-editing/react' // Ajouté
    ],
    },
    }
Terminal window
# Nettoyer le cache Vite
rm -rf apps/web/node_modules/.vite
# Réinstaller les dépendances
task install
# ou
npx pnpm@12.3.4 install
Terminal window
# Typecheck
task typecheck
# ✅ Résultat : 0 erreurs
# Build
task build
# ✅ Résultat : Build réussi (avec avertissements non bloquants)
# Dev server
task dev
# ✅ Résultat : Serveur démarré sur http://localhost:4321
# ✅ Aucune erreur de fichier manquant dans .vite/deps_ssr
  • ✅ Accès à /blog/welcome-to-oci sans crash
  • ✅ Optimisation des dépendances Sanity réussie
  • ✅ Reload automatique lors des changements de fichiers
[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.

Le workflow .github/workflows/deploy-dev.yml utilise :

- run: pnpm install --frozen-lockfile
- run: pnpm run build

Ces commandes fonctionneront avec le nouveau lockfile car :

  • pnpm-lock.yaml a é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
  • 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

Quand revenir à Vite 8 ?

  1. Surveiller les issues :

  2. Tester après mises à jour :

    • Nouvelle version d’Astro (7.4+)
    • Nouvelle version de Sanity (6.17+)
    • Nouvelle version de @sanity/visual-editing
  3. Procédure de retour à Vite 8 :

    Terminal window
    # Supprimer la dépendance directe
    pnpm remove vite
    # Mettre à jour Astro pour la dernière version
    pnpm add astro@latest
    # Nettoyer et réinstaller
    rm -rf node_modules pnpm-lock.yaml apps/web/node_modules/.vite
    pnpm install
    # Tester
    task build && task dev