Aller au contenu

Modules

Les modules permettent de découper un programme en plusieurs fichiers réutilisables.
➡ Cela rend le code plus clair, mieux organisé et plus facile à maintenir.

Sans modules, tout le code se retrouvait dans un seul fichier, avec un risque de conflits entre variables ou fonctions.


Un fichier peut exporter ses fonctions, variables ou classes pour les rendre accessibles ailleurs.

// fichier math.js
export function addition(a, b) {
return a + b;
}
export const PI = 3.14;

Un autre fichier peut ensuite importer ce dont il a besoin.

// fichier main.js
import { addition, PI } from "./math.js";
console.log(addition(2, 3)); // 5
console.log(PI); // 3.14

On utilise les accolades { } pour importer des exports nommés.


Un fichier peut aussi avoir $un seul export par défaut$. Dans ce cas, on peut l’importer avec n’importe quel nom.

// fichier utils.js
export default function saluer(nom) {
return `Bonjour ${nom}`;
}
// fichier main.js
import saluer from "./utils.js";
console.log(saluer("Alice")); // Bonjour Alice

TypeDéclarationImportation
Export nomméexport function addition() {}import { addition } from "./file.js"
Export par défautexport default function saluer()import saluer from "./file.js"

Avant l’introduction des modules ES6, Node.js utilisait le système CommonJS :

// CommonJS (ancien)
const fs = require("fs");
// ES6 (moderne)
import fs from "fs";

Aujourd’hui, Node.js supporte les modules ES6 (avec l’extension .mjs ou "type": "module" dans package.json).


  • Préférer les exports nommés pour plus de clarté et de flexibilité.
  • Utiliser un export par défaut uniquement si le module fournit une seule fonctionnalité principale.
  • Organiser les modules par thème ou domaine (ex. math.js, user.js, api.js).
  • Toujours indiquer l’extension .js lors des imports dans un navigateur moderne.