Tree Shaking

JavaScript 🟡 Mid

Definition

Elimination du code mort par les bundlers (Webpack, Rollup, esbuild) basee sur l'analyse statique des imports ESM. Seuls les exports effectivement importes sont inclus dans le bundle final.

Analogie

Secouer un arbre pour ne garder que les fruits murs (code utilise) et laisser tomber les feuilles mortes (code inutilise).

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

Reduire 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 empechent le tree shaking.
#core#performance#modules