Besoin
Structurer le code Javascript en groupes de code isolés.
Analyse
Un module peut contenir :
- Des "classes" d'objets
- Des "méthodes" statiques
Conception
Il existe plusieurs manières d'achever l'équivalent d'un module :
- Objet littéral : le module est un objet contenant des méthodes accessibles.
- Fonction anonyme : le module est une IIFE contenant des méthodes
accessibles, ainsi qu'une éventuelle initialisation.
- API
- Synchrone, dans des applications autonomes typiquement
- Asynchrone (AMD), dans un client web
(navigateur), typiquement.
Implémentation
Le module déclare ses points d'entrée via export
.
L'utilisateur du module peut les voir via import
.
Exports nommés
Il s'agit de pouvoir exporter plusieurs éléments d'un module, distingués leur nom.
Exports par défaut
Il s'agit d'exporter qu'un élément d'un module.
Exemples
Chargement synchrones
CommonJS, API utilisée par NodeJS, Angular 2.