Side Effects in Modules
JavaScript 🔴 SeniorDefinition
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).