Les Modules JavaScript

Les modules permettent de séparer le code dans plusieurs fichiers.

Cette approche aide à :

Les modules sont une partie très importante du JavaScript moderne.

1. Pourquoi utiliser des modules

Sans modules, tout le code se retrouve souvent dans un seul fichier.

script.js

Dans un vrai projet, cela devient rapidement difficile à maintenir.

Les modules permettent de séparer les responsabilités.

2. Exemple de structure

project/
│
├── math.js
├── cart.js
├── user.js
└── main.js

Chaque fichier possède sa propre responsabilité.

3. export

Le mot-clé export permet de rendre une valeur accessible depuis un autre fichier.

// math.js

export function add(a, b) {

    return a + b;

}

Ici, la fonction add() devient exportée.

4. import

Le mot-clé import permet d’utiliser un élément exporté.

// main.js

import { add } from "./math.js";

console.log(add(2, 3));

Ici, main.js importe la fonction add().

5. Comment lire import

import { add } from "./math.js";
Partie Rôle
add Élément importé
./math.js Fichier source

6. Export multiple

Un fichier peut exporter plusieurs éléments.

// math.js

export function add(a, b) {

    return a + b;

}

export function multiply(a, b) {

    return a * b;

}

Puis :

import { add, multiply } from "./math.js";

7. Export default

Un module peut aussi posséder un export principal.

// user.js

export default function login() {

    console.log("Connexion");

}

Importation :

import login from "./user.js";

Ici, les accolades ne sont pas nécessaires.

8. Différence entre export et export default

export export default
Plusieurs exports possibles Un seul export principal
Import avec { } Import sans { }
Nom obligatoire Nom libre à l’importation

9. Renommer un import

Un élément importé peut être renommé.

import { add as addition } from "./math.js";

console.log(addition(2, 3));

10. Importer tout un module

import * as math from "./math.js";

console.log(math.add(2, 3));

console.log(math.multiply(2, 3));

Tous les exports sont regroupés dans un objet.

11. Modules dans le navigateur

Pour utiliser les modules dans un navigateur, le script doit utiliser :

type="module"
<script type="module" src="main.js"></script>

12. Les chemins relatifs

Les imports utilisent souvent des chemins relatifs.

./

Signifie :

"dans le dossier actuel"
../

Signifie :

"remonter d’un dossier"

13. CommonJS

Avant les modules modernes, Node.js utilisait principalement :

CommonJS

Exemple :

// math.js

function add(a, b) {

    return a + b;

}

module.exports = add;
// main.js

const add = require("./math");

console.log(add(2, 3));

14. ES Modules vs CommonJS

ES Modules CommonJS
import / export require / module.exports
JavaScript moderne Ancienne approche Node.js
Natif dans le navigateur Principalement Node.js

15. Modules et architecture

Les modules améliorent énormément l’architecture d’un projet.

Chaque fichier peut :

16. Exemple concret

Fichier :

// cart.js

export function createCartMessage(cart) {

    if (cart.size === 0) {

        return "Votre panier est vide";

    }

    return "Votre panier contient des articles";

}

Utilisation :

// main.js

import { createCartMessage } from "./cart.js";

const cart = new Map();

console.log(createCartMessage(cart));

17. Bonnes pratiques

Résumé rapide

Concept Utilité
export Rendre une valeur accessible
import Utiliser un module
export default Export principal
type="module" Activer les modules navigateur
./ Dossier actuel
../ Remonter d’un dossier
CommonJS Ancien système Node.js
ES Modules Modules modernes JavaScript