Notions de base de CommonJS — require/module.exports et exports
Découvrez CommonJS : require(), module.exports, le raccourci exports et un aperçu de l’interopérabilité avec ESM
Notions de base de CommonJS — require/module.exports et exports est une leçon JavaScript Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 3. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage JavaScript Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours JavaScript Academy comprend 3 leçons au total.
CJS : vue d’ensemble
Objectif : lire et écrire de petits modules CommonJS.
- require() charge des modules
- module.exports est l’objet exporté
- exports est un raccourci vers ce même objet
- Bref aperçu de l’interopérabilité avec ESM

require() — principe
require(path) renvoie l’objet exporté par le module en CommonJS.
// CommonJS import uses require()
const cjsExample = [
"const math = require(\\"./math.js\\");",
"console.log(math.sum(2, 3));"
];
console.log("require() example:");
for (const line of cjsExample) console.log(line);
// Emulate a loaded module object
const loaded = { sum: function (a, b) { return a + b; } };
console.log("emulated require sum:", loaded.sum(2, 3));
module.exports
Affectez une valeur à module.exports pour l’exporter (fonction, objet, etc.).
// module.exports sets what the module returns
const lines1 = [
"function greet(name) { return \\"Hi \\" + name; }",
"module.exports = greet;"
];
console.log("module.exports example:");
for (const l of lines1) console.log(l);
// Emulate consumption
function greet(name) { return "Hi " + name; }
const api1 = greet; // like module.exports = greet
console.log("use exported fn:", api1("Ayla"));
Raccourci exports
exports.prop = ... convient ; ne réaffectez pas exports = ..., car il ne pointe alors plus vers module.exports.
// exports is a shortcut to module.exports (same object)
const lines2 = [
"// Good: add properties",
"exports.sum = function (a, b) { return a + b; };",
"",
"// Pitfall: reassigning exports breaks the link",
"exports = function () {}; // WRONG"
];
console.log("exports shortcut:");
for (const l of lines2) console.log(l);
// Emulate good usage
const moduleObj = {};
const exportsRef = moduleObj; // like exports === module.exports initially
exportsRef.sum = function (a, b) { return a + b; };
console.log("sum via exportsRef:", moduleObj.sum(2, 4));
Exports multiples
Vous pouvez exporter un objet contenant de nombreuses fonctions et les lire via leurs propriétés.
// Export an object with multiple members
const lines3 = [
"function add(a, b) { return a + b; }",
"function mul(a, b) { return a * b; }",
"module.exports = { add, mul };"
];
console.log("multiple exports object:");
for (const l of lines3) console.log(l);
// Emulate consumption
const api2 = {
add: function (a, b) { return a + b; },
mul: function (a, b) { return a * b; }
};
console.log("use add/mul:", api2.add(1, 2), api2.mul(2, 3));
Aperçu d’ESM ↔ CJS
Interopérabilité (aperçu) :
- Un ESM qui importe un CJS reçoit souvent le module.exports du CJS comme export par défaut.
- Exemple : import pkg from "./cjs.js", puis utilisez pkg.add().
- Gardez les exemples simples ; évitez de mélanger les styles dans un même fichier sauf nécessité.

Quiz sur la syntaxe d’export CJS
Vérification rapide : exporter en CommonJS.

Récapitulatif
Récapitulatif : chargez avec require(), exportez avec module.exports, ajoutez des propriétés via exports.prop et évitez de réaffecter exports. L’interopérabilité ESM associe souvent le module.exports CJS à un export par défaut.

Questions Fréquemment Posées
La leçon « Notions de base de CommonJS — require/module.exports et exports » est-elle gratuite ?
Oui — le texte complet de « Notions de base de CommonJS — require/module.exports et exports » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours JavaScript Academy, passe à CoddyKit PRO. Le cours JavaScript Academy comprend 3 leçons au total.
Qu'est-ce que j'apprendrai dans « Notions de base de CommonJS — require/module.exports et exports » ?
Découvrez CommonJS : require(), module.exports, le raccourci exports et un aperçu de l’interopérabilité avec ESM Tu pratiques JavaScript Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer JavaScript Academy ?
Aucune expérience préalable n'est requise. JavaScript Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 3.
Combien de temps prend la leçon « Notions de base de CommonJS — require/module.exports et exports » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon JavaScript Academy ?
Oui. Chaque leçon JavaScript Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Notions de base d’ESM — import/export, exportation par défaut ou nommée
- Notions de base de CommonJS — require/module.exports et exports
- Résolution des modules dans Node et les outils de regroupement du navigateur