Tree Shaking
JavaScript 🟡 MidDéfinition
Élimination du code mort par les bundlers grâce à l'analyse statique des imports ESM : seuls les exports réellement importés restent dans le bundle. Outils actuels : Rollup, esbuild, webpack et Rolldown, le bundler Rust qui remplace le duo esbuild + Rollup dans Vite 8 (12 mars 2026) avec des builds annoncés 10 à 30 fois plus rapides.
Analogie
Secouer un arbre pour ne garder que les fruits murs (code utilise) et laisser tomber les feuilles mortes (code inutilisé).
Exemple de code
// utils.js
export const used = () => 'kept';
export const unused = () => 'removed';
// app.js
import { used } from './utils';
// unused est elimine du bundle
Cas d'usage
Réduire la taille des bundles en production, surtout avec de grosses librairies comme lodash.
Anti-pattern
import * as lib ou re-exports via barrel files qui empêchent le tree shaking.
Termes liés
Fiche mise à jour le 2026-09-27