Vite est l'outil de build qui a révolutionné l'expérience de développement frontend. Créé par Evan You (créateur de Vue.js), vite résout le problème fondamental des bundlers traditionnels comme Webpack : la lenteur au démarrage et lors des mises à jour en développement.
Le problème que Vite résout
Avec Webpack, chaque démarrage du serveur de développement bundle l'intégralité du code. Sur un projet moyen, c'est 10 à 60 secondes d'attente. vite adopte une approche radicalement différente : il exploite les modules ES natifs du navigateur pendant le développement.
Au démarrage, vite ne bundle rien. Il sert les fichiers source directement au navigateur via ESM. Le HMR (Hot Module Replacement) ne met à jour que le module modifié, en quelques millisecondes quelle que soit la taille du projet.
Installation et configuration
npm create vite@latest mon-projet -- --template vanilla
# Ou avec React : --template react
# Avec Vue : --template vue
# TypeScript : --template react-ts
cd mon-projet && npm install && npm run dev
Le serveur démarre en moins d'une seconde. C'est la différence vite vs Webpack la plus frappante.
Structure et configuration
// vite.config.js
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
export default defineConfig({
plugins: [react()],
resolve: {
alias: { '@': '/src' }
},
build: {
outDir: 'dist',
minify: 'esbuild',
rollupOptions: {
output: {
manualChunks: {
vendor: ['react', 'react-dom'],
}
}
}
},
server: {
port: 3000,
proxy: {
'/api': 'http://localhost:8080'
}
}
});
Plugins essentiels Vite
L'écosystème de plugins vite est riche : @vitejs/plugin-react pour React, @vitejs/plugin-vue pour Vue, vite-plugin-pwa pour les PWA, vite-imagetools pour l'optimisation d'images, et vite-plugin-compression pour la compression Brotli/Gzip.
Variables d'environnement
Vite expose les variables d'environnement préfixées par VITE :
# .env.production
VITE_API_URL=https://api.monsite.fr
VITE_APP_TITLE=Mon Application
const apiUrl = import.meta.env.VITE_API_URL;
Migration depuis Webpack
La migration vite depuis Webpack est généralement simple :
- Remplacez
process.env.VARIABLEparimport.meta.env.VITEVARIABLE - Remplacez les
require()dynamiques par desimport()dynamiques - Vérifiez la compatibilité des plugins Webpack (la plupart ont des équivalents Vite)
Build de production
npm run build
En production, vite utilise Rollup pour bundler le code avec tree-shaking optimal, minification esbuild et génération des assets avec hash pour le cache navigateur. Le dossier dist est prêt à être déployé sur n'importe quel hébergeur statique.
La documentation officielle Vite est excellente et couvre tous les cas d'usage avancés.
Conclusion
Vite a redéfini les standards de l'outillage frontend. Si vous utilisez encore Webpack ou Create React App, migrer vers vite est l'une des meilleures choses que vous puissiez faire pour votre productivité. La différence est immédiatement perceptible au premier démarrage.
Vite a révolutionné l'expérience de développement frontend avec son serveur HMR quasi-instantané basé sur les ES Modules natifs. En production, Rollup produit des bundles optimisés avec tree-shaking agressif et code splitting automatique. Les plugins Vite couvrent tous les cas : PWA avec vite-plugin-pwa, analyse de bundle avec rollup-plugin-visualizer. Pour les monorepos, Vite s'intègre parfaitement avec pnpm workspaces et Turborepo. La migration depuis Webpack est généralement rapide pour les projets standards. Vite est maintenant le build tool recommandé par Vue, React, Svelte et Solid. La documentation Vite est concise, complète, et propose des guides de migration détaillés pour chaque framework frontend populaire du marché.
Configuration avancée et plugins
Le fichier vite.config.ts centralise toute la configuration : alias de chemins (resolve.alias), variables d'environnement (define), et configuration de proxy pour le développement local. Les plugins Vite s'écrivent facilement en TypeScript et peuvent transformer les fichiers à chaque étape du pipeline. La documentation des plugins Vite détaille l'API complète avec des exemples pour chaque hook disponible.
Variables d'environnement
Vite gère les variables d'environnement via des fichiers .env : .env.development pour le développement, .env.production pour la production. Les variables préfixées par VITE sont exposées côté client via import.meta.env.VITEMA_VAR. Les autres variables restent serveur uniquement. Ce mécanisme remplace avantageusement process.env de Webpack et fonctionne nativement avec TypeScript grâce aux types ImportMetaEnv définis dans vite-env.d.ts.