Modules ES dans le navigateur ES modules in the browser
La prise en charge native des modules JavaScript par le navigateur, via <script type="module"> et import/export. On écrit du code modulaire qui s'exécute directement dans le navigateur, sans bundler — le système de modules normalisé du Web.
Contexte : avant ESM, le Web n'avait aucun système de modules intégré — on collait des scripts globaux ou l'on passait par des bundlers (webpack) et des formats comme CommonJS. Les modules ES (ES2015, largement pris en charge par les navigateurs depuis 2018 environ) sont le standard : <script type="module"> active le mode module, et import/export fonctionnent nativement. Particularités du mode module : toujours en mode strict, defer par défaut (chargés en parallèle, exécutés après l'analyse), exécutés une seule fois quel que soit le nombre d'imports, portée propre (aucune fuite globale), et CORS obligatoire pour les imports inter-domaines. Avec les import maps, l'import dynamique et l'await de niveau supérieur, ils rendent le développement sans étape de build praticable pour les petits projets. Les bundlers restent nécessaires pour les grosses applications (optimisation, tree-shaking, anciens navigateurs), mais la plateforme sait désormais faire beaucoup elle-même. La base du JS web modulaire moderne. Voisins : import maps et import dynamique.