Qu'est-ce que Vite ?

Outil de build frontend par Evan You. Serveur dev ESM natif (démarrage instantané) + builds prod basés Rollup. Remplace webpack.

Qu'est-ce que Vite ?

Vite (prononcé "vit", français pour "rapide") est un outil de build frontend moderne créé par Evan You (aussi créateur de Vue.js). Il accélère dramatiquement la boucle de feedback de développement en servant les fichiers source comme des modules ES natifs pendant le développement et en utilisant Rollup pour produire des bundles optimisés pour la production. Sorti en 2020 et stable depuis Vite 2.0 (2021), Vite est devenu l'outil de build par défaut pour Vue 3, SvelteKit et Astro, et est de plus en plus choisi pour les projets React plutôt que Create React App (qui est deprecated).

Le pitch est simple : les démarrages à froid du serveur dev sont en moins d'une seconde, même pour de grands projets, et les mises à jour de hot module reload (HMR) semblent instantanées indépendamment de la taille du projet. La raison : Vite expédie votre code source au navigateur comme des modules ES natifs pendant le développement, laissant le navigateur faire le gros travail de résolution de dépendances. Pas d'étape de bundling à chaque changement.

L'architecture deux-modes

Vite opère différemment en dev vs. production :

Mode développement : ESM natif

Le serveur dev sert vos fichiers source directement au navigateur comme des modules ES natifs. Le navigateur demande App.vue, Vite le transforme à la volée (compilant Vue/JSX/TypeScript) et le retourne. Les imports sont résolus par le navigateur. Aucun bundle n'est construit à l'avance.

L'optimisation clé : seuls les fichiers que le navigateur demande réellement sont traités. Si vous ne visitez jamais /admin, aucun de ces fichiers ne se compile. C'est pourquoi même les projets de 10 000 fichiers démarrent instantanément.

Les dépendances (node_modules) sont pré-bundlées avec esbuild (basé sur Go, ~10-100x plus rapide que les bundlers JavaScript) en un seul fichier ESM par bibliothèque, donc le navigateur ne fait pas 100+ requêtes pour une bibliothèque.

Mode production : bundling Rollup

Pour la production, Vite utilise Rollup pour produire des bundles optimisés. Code splitting, tree shaking, hash d'assets, extraction CSS — toutes les fonctionnalités standard de build production. La sortie est un répertoire statique dist/ prêt à être uploadé vers n'importe quel CDN ou hôte statique.

Pourquoi Vite est plus rapide que webpack

PhasewebpackVite
Démarrage dev à froid10-60s (bundle complet)0,3-2s (pas de bundle)
HMR après édition1-5s (re-bundle affectés)50-200ms (transformation fichier unique)
Parsing des dépendancesBasé JSesbuild (basé Go)
Portée initialeProjet entierSeulement routes demandées

Le pattern est cohérent : webpack fait trop de travail à l'avance ; Vite reporte le travail jusqu'à ce qu'il soit nécessaire.

Ce qui fonctionne out-of-the-box

  • TypeScript (avec esbuild pour la transpilation ; le type-checking est séparé via tsc --noEmit).
  • JSX/TSX.
  • CSS, modules CSS, Sass, Less, Stylus.
  • PostCSS auto-détecté depuis postcss.config.js.
  • Assets statiques (.png, .svg, .json) importés directement.
  • Variables d'environnement via fichiers .env (avec préfixe VITE_ exposé au code client, pour la sécurité).
  • HMR pour Vue, React, Svelte, vanilla JS.
  • Imports glob (import.meta.glob).
  • Imports Web Worker (new Worker(new URL(...))).

L'écosystème de plugins

Les plugins Vite utilisent une API de plugins compatible Rollup étendue avec des hooks spécifiques à Vite. Plugins clés :

  • @vitejs/plugin-vue, @vitejs/plugin-react — support de framework officiel.
  • @vitejs/plugin-legacy — génère un bundle legacy pour les navigateurs plus anciens (pas d'ESM natif).
  • vite-plugin-pwa — génération de service worker, manifest, support offline.
  • unplugin-auto-import / unplugin-vue-components — auto-imports pour fonctions et composants courants (grand gain DX).
  • vite-plugin-checker — exécute TypeScript et ESLint en parallèle pendant dev.
  • vite-imagetools — optimisation d'images au moment du build.

Pièges courants de Vite

  • Process.env ne fonctionne pas. Vite utilise import.meta.env à la place, avec préfixe VITE_. Migrer depuis CRA nécessite de mettre à jour toutes les références aux env-vars.
  • Les imports dynamiques nécessitent des chemins complets. import(`./pages/${name}.tsx`) ne fonctionne pas comme dans webpack. Utilisez import.meta.glob pour les patterns dynamiques.
  • La configuration SSR est plus manuelle. Vite a un support SSR mais l'intégration avec un framework dépend de vous. Utilisez Nuxt (Vue), SvelteKit (Svelte), Astro ou Remix pour SSR-out-of-the-box.
  • esbuild ne fait pas de type-checking. Les erreurs de type ne casseront pas votre serveur dev. Lancez tsc --noEmit en CI ou utilisez vite-plugin-checker.
  • Certains plugins webpack n'ont pas d'équivalents Vite. Cas de niche (fonctionnalités spécifiques de module federation, gestion inhabituelle d'assets) peuvent nécessiter des contournements.
  • HMR peut casser avec l'état global. Si votre code mute des globales au niveau module, HMR peut produire un état obsolète. Évitez le pattern ou acceptez un full reload pour ces modules.

Vite vs. esbuild vs. Turbopack vs. webpack

  • Vite — serveur dev (ESM natif) + build prod basé Rollup. Mieux pour la plupart des projets frontend modernes.
  • esbuild — bundler pur (pas de serveur dev). Utilisé par Vite sous le capot pour le pre-bundling de dépendances. Utilisez-le directement pour les bibliothèques ou scripts, pas les apps complètes.
  • Turbopack — successeur expérimental de webpack par Next.js, écrit en Rust. Plus rapide que webpack mais lié à Next.js. Moins mature que Vite.
  • webpack — le grand-père. Écosystème de plugins le plus flexible, mais lent pour les projets modernes. Toujours bien pour le legacy ou les apps avec exigences inhabituelles spécifiques à webpack.

VoidZero et l'avenir commercial de Vite

Evan You a lancé VoidZero en 2024 pour commercialiser et accélérer tout l'écosystème Vite (Vite, Vitest, Rolldown, Oxc). L'entreprise vise à fournir un tooling enterprise et du conseil autour de Vite tout en gardant le cœur open source. Cela signale une durabilité à long terme pour Vite — ce n'est plus un projet secondaire du créateur de Vue.

FAQ : Vite

Devrais-je migrer de webpack à Vite ?

Pour la plupart des projets, oui — l'amélioration de l'expérience dev est dramatique. Le coût de migration dépend de votre config spécifique webpack. Les apps standard React/Vue/Svelte migrent en 1-3 jours. Les apps avec plugins custom webpack, module federation ou interop CommonJS lourd peuvent prendre 1-3 semaines.

Vite est-il prêt pour la production ?

Oui, très. Vite est stable depuis 2.0 (2021). Les adopteurs majeurs incluent Shopify, GitLab, Cypress, Storybook, Replit. Les bundles de production (via Rollup) sont battle-tested.

Vite fonctionne-t-il avec React ?

Oui. Utilisez @vitejs/plugin-react pour React standard ou @vitejs/plugin-react-swc pour fast refresh basé SWC. La plupart des équipes migrant depuis Create React App choisissent Vite.

Vite peut-il faire du rendu côté serveur ?

Oui — Vite a des APIs SSR. Mais les intégrer est compliqué ; pour la plupart des équipes, utilisez un méta-framework qui enveloppe Vite (Nuxt, SvelteKit, Astro, Remix, Solid Start).

Qu'est-ce que Rolldown ?

Rolldown est le remplacement basé Rust pour Rollup que VoidZero construit. Il sera drop-in compatible avec l'API de plugins de Rollup mais beaucoup plus rapide. Quand stable, Vite utilisera Rolldown pour les builds de production, éliminant la divergence de tooling dev/prod (esbuild pour dev, Rollup pour prod).

En quoi Vite est-il différent de Vitest ?

Vitest est le test runner unitaire qui utilise le pipeline de Vite (donc les tests partagent les mêmes transformations et config que votre app). Créé par la même équipe. Remplacement drop-in pour Jest dans les projets Vite.

Comment LoadFocus se rapporte aux apps construites avec Vite

Les apps construites avec Vite ont toujours besoin que leurs tailles de bundle et performance runtime soient validées. Le même JavaScript qui charge rapidement grâce au tree-shaking Rollup doit toujours rendre rapidement sur des appareils lents. Les tests de vitesse de site web LoadFocus valident les Core Web Vitals dans des conditions réelles de réseau à travers 30+ localisations. Le monitoring d'API couvre les endpoints backend que votre SPA construite avec Vite appelle — l'optimisation de bundle n'aide pas si l'API est lente.

Quelle est la vitesse de votre site web?

Augmentez sa vitesse et son référencement naturel de manière transparente avec notre Test de Vitesse gratuit.

Test gratuit de vitesse du site Web

Analyser la vitesse de chargement de votre site Web et améliorer ses performances avec notre outil gratuit de vérification de la vitesse de la page.

×