Side Effects in Modules

JavaScript 🔴 Senior

Definition

Code execute a l'import d'un module (polyfills, CSS imports, enregistrement global). Le champ sideEffects dans package.json indique au bundler quels fichiers ont des effets de bord.

Analogie

Un colis piege : juste en l'ouvrant (import), quelque chose se declenche automatiquement.

Exemple de code

// polyfill.js (side effect)
import 'core-js/stable';

// package.json
{
  "sideEffects": ["*.css", "./src/polyfills.js"]
}
// false = aucun side effect, tree shaking total

Cas d'usage

Declarer correctement sideEffects pour permettre un tree shaking optimal par le bundler.

Anti-pattern

Mettre sideEffects: false quand le module a vraiment des effets de bord (CSS, polyfills).
#core#modules#performance