écrits/blog/2026/06
Blog28 juin 2026·6 min

Vite 8 + Rolldown : le guide du bundler Rust

Vite 8 embarque Rolldown, un bundler en Rust qui réduit les temps de build de 10 à 30x. Guide pratique : migration, config, chunks avancés et usage autonome.

Pendant des années, Vite a reposé sur un compromis discret. En développement, il utilisait esbuild pour des transformations ultra-rapides ; en production, il basculait sur Rollup pour son écosystème de plugins mature et sa meilleure sortie. Deux bundlers, deux comportements, et une longue traîne de différences subtiles entre ce que vous voyiez en local et ce qui partait en production. Vite 8 met fin à cette division. Il remplace les deux moteurs par un unique bundler écrit en Rust, baptisé Rolldown, et les résultats sont difficiles à ignorer : des builds qui prenaient des minutes se terminent désormais en secondes.

Ce guide explique ce qu'est Rolldown, pourquoi il compte, et comment migrer un vrai projet sans casser vos plugins.

Ce qui change avec Vite 8

Vite 8 est sorti en version stable le 12 mars 2026, et Rolldown a atteint sa propre version 1.0 stable le 7 mai 2026. L'essentiel est architectural : un seul bundler alimente désormais le développement et le build. Rolldown est écrit en Rust, s'appuie sur la chaîne d'outils Oxc pour l'analyse et la minification, et expose une API de plugins compatible Rollup afin que votre écosystème existant continue de fonctionner.

Les chiffres de performance proviennent de migrations réelles, pas de benchmarks synthétiques :

  • Linear : le build de production est passé de 46 s à 6 s, soit une réduction de 87 %.
  • GitLab : de 2 minutes 30 sur Vite 7 à 22 secondes, et 43x plus rapide que leur configuration Webpack d'origine.
  • Ramp : builds 57 % plus rapides. Beehiiv : 64 %. Mercedes-Benz.io : jusqu'à 38 %.

Rolldown est généralement décrit comme 10 à 30x plus rapide que Rollup, l'écart se creusant à mesure que le projet grandit. Sur les gros monorepos, c'est la différence entre une pause café et un simple regard détourné de l'éditeur.

Pourquoi un bundler Rust unique change la donne

Le modèle à deux bundlers avait un problème structurel : développement et production pouvaient diverger. Un module bien tree-shaké sous Rollup pouvait se comporter différemment sous la transformation esbuild de développement, et vous ne le découvriez qu'après déploiement. Unifier sur Rolldown signifie que ce que vous exécutez en local est ce que vous livrez.

Rust est l'élément déclencheur. Le bundling est un travail intensif pour le processeur — analyser, résoudre, transformer et sérialiser des milliers de modules. Le code natif avec un vrai multithreading fait cela plus vite que JavaScript ne le pourra jamais, raison pour laquelle toute la chaîne d'outils front-end migre vers Rust et Go. Rolldown fait partie de la pile plus large de VoidZero, aux côtés du linter Oxc (oxlint), du formateur Oxc et de tsdown pour les builds de bibliothèques.

Migrer un projet existant

La migration est conçue pour être ennuyeuse, ce qui est le plus beau compliment qu'on puisse faire à un outil de build. Commencez par mettre à jour :

npm install vite@^8 --save-dev

Vite 8 convertit automatiquement vos configurations esbuild et rollupOptions existantes vers leurs équivalents Rolldown et Oxc ; la plupart des projets se construisent donc du premier coup. Une configuration minimale ressemble exactement à ce que vous avez déjà :

// vite.config.ts
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
 
export default defineConfig({
  plugins: [react()],
  build: {
    target: 'es2022',
  },
})

Là où vous utilisiez auparavant build.rollupOptions, vous disposez désormais de build.rolldownOptions, avec la même forme. Les options d'entrée et de sortie sont reprises directement :

export default defineConfig({
  build: {
    rolldownOptions: {
      output: {
        manualChunks: {
          vendor: ['react', 'react-dom'],
        },
      },
    },
  },
})

La plupart des plugins Rollup fonctionnent sans modification grâce à l'API de plugins compatible. La base Node est inchangée par rapport à Vite 7 — Node 20.19+ ou 22.12+ — vos images CI n'ont donc probablement besoin d'aucune retouche.

Un chunking avancé qui passe vraiment à l'échelle

L'un des gains les plus concrets de Rolldown est son modèle de chunking. Au-delà du manualChunks familier, il prend en charge des règles de découpage à la manière de webpack via advancedChunks, permettant de séparer par taille, nombre de modules ou motifs de chemin. Framer a utilisé cela pour réduire son nombre de chunks de 67 %.

export default defineConfig({
  build: {
    rolldownOptions: {
      output: {
        advancedChunks: {
          groups: [
            {
              name: 'vendor',
              test: /node_modules/,
              minSize: 50_000,
            },
            {
              name: 'ui',
              test: /src\/components\/ui/,
            },
          ],
        },
      },
    },
  },
})

Cela compte pour les performances de chargement réelles. Des chunks moins nombreux et plus intelligents signifient moins d'allers-retours — un gain notable lorsque vos utilisateurs sont sur des réseaux mobiles loin de votre edge, une réalité quotidienne dans la région MENA où le trajet vers un nœud edge à Francfort ou à Bahreïn n'est jamais gratuit.

Utiliser Rolldown en autonome

Vous n'avez pas besoin de Vite pour profiter de Rolldown. Il est livré comme bundler autonome avec une CLI et la prise en charge d'une configuration TypeScript, ce qui en fait un choix solide pour empaqueter des bibliothèques, du code serveur ou des outils en ligne de commande.

npm install rolldown --save-dev
// rolldown.config.ts
import { defineConfig } from 'rolldown'
 
export default defineConfig({
  input: 'src/index.ts',
  output: {
    dir: 'dist',
    format: 'esm',
  },
})
npx rolldown -c rolldown.config.ts

Rolldown pratique une élimination agressive du code mort, en respectant les annotations @__PURE__ et @__NO_SIDE_EFFECTS__ ainsi que le champ sideEffects du package.json. Il inline les const enums et constantes TypeScript, et embarque des plugins intégrés (comme replacePlugin) qui remplacent des dépendances que vous installiez auparavant séparément. Pour les auteurs de bibliothèques, tsdown enveloppe Rolldown avec des réglages par défaut sensés pour générer les types et plusieurs formats de sortie.

Le mode de développement expérimental en bundle complet

Le serveur de développement de Vite servait traditionnellement des modules ES natifs non empaquetés : un démarrage rapide, mais qui peut inonder le navigateur de requêtes dans les grosses applications. Vite 8 ajoute un mode de développement expérimental en bundle complet qui empaquette aussi en développement. Les premiers résultats montrent un démarrage du serveur de dev environ 3x plus rapide, des rechargements complets 40 % plus rapides et 10x moins de requêtes réseau. C'est optionnel pour l'instant, mais cela indique la direction que prendra la valeur par défaut.

Une note sur une cible mouvante

L'écosystème se stabilise encore. Fin juin 2026, l'équipe a retiré de Rolldown une intégration expérimentale en Rust du React Compiler après qu'elle eut ajouté environ 5 Mo au binaire et soulevé des questions légitimes sur l'inclusion de code propre à un framework dans un bundler généraliste. La leçon pour les équipes : épinglez vos versions, lisez le changelog avant de mettre à niveau, et gardez les transformations spécifiques à un framework dans les plugins de framework, là où elles ont leur place.

Il y a aussi un compromis de taille à budgétiser. Vite 8 s'installe avec environ 15 Mo de plus que Vite 7, principalement à cause de Lightning CSS (~10 Mo) et de Rolldown (~5 Mo). Sur une machine de développement, c'est sans importance ; dans une image de conteneur fortement contrainte, mieux vaut le savoir.

Faut-il mettre à niveau ?

Pour la plupart des projets, oui. Le chemin de migration est réellement fluide, l'écosystème de plugins est repris tel quel, et les économies de temps de build sont assez importantes pour changer la façon de travailler de votre équipe — CI plus rapide, builds locaux plus rapides, et moins de surprises « ça marche sur ma machine » dues à l'ancien clivage à deux bundlers. La démarche pragmatique consiste à mettre d'abord à niveau un projet non critique, observer vos chiffres CI, puis le déployer sur l'ensemble de votre code.

L'ère de l'attente sur le bundler touche à sa fin. Vite 8 et Rolldown rendent l'étape de build assez rapide pour qu'elle cesse d'être quelque chose autour de quoi vous organisez votre journée — et c'est précisément ce que devrait être un outil de build.

À lire également