CommonJS vs ESM
JavaScript 🟡 MidDefinition
CommonJS (require/module.exports) est synchrone, dynamique et utilise par Node.js historiquement. ESM (import/export) est statique, asynchrone, supportant le tree shaking. ESM est le standard moderne.
Analogie
CommonJS = commander par telephone (dynamique, a la demande). ESM = liste de courses pre-ecrite (statique, analysable a l'avance).
Exemple de code
// CommonJS
const fs = require('fs');
module.exports = { readFile: fs.readFile };
// ESM
import { readFile } from 'fs';
export { readFile };
Cas d'usage
Choisir le bon systeme de modules selon le contexte : ESM pour le nouveau code, CommonJS pour la compatibilite Node.js legacy.
Anti-pattern
Melanger require() et import dans le meme fichier sans comprendre l'interoperabilite.