Modules
Pourquoi des modules ?
Section intitulée « Pourquoi des 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.
Exporter un module
Section intitulée « Exporter un module »Un fichier peut exporter ses fonctions, variables ou classes pour les rendre accessibles ailleurs.
// fichier math.jsexport function addition(a, b) { return a + b;}
export const PI = 3.14;
Importer un module
Section intitulée « Importer un module »Un autre fichier peut ensuite importer ce dont il a besoin.
// fichier main.jsimport { addition, PI } from "./math.js";
console.log(addition(2, 3)); // 5console.log(PI); // 3.14
On utilise les accolades
{ }
pour importer des exports nommés.
Export par défaut
Section intitulée « Export par défaut »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.jsexport default function saluer(nom) { return `Bonjour ${nom}`;}
// fichier main.jsimport saluer from "./utils.js";
console.log(saluer("Alice")); // Bonjour Alice
Export nommé vs export par défaut
Section intitulée « Export nommé vs export par défaut »Type | Déclaration | Importation |
---|---|---|
Export nommé | export function addition() {} | import { addition } from "./file.js" |
Export par défaut | export default function saluer() | import saluer from "./file.js" |
Modules en Node.js
Section intitulée « Modules en Node.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).
Bonnes pratiques
Section intitulée « Bonnes pratiques »- 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.