L'extension de fichier .mjs est utilisée pour les modules JavaScript ECMAScript. Elle indique que le fichier doit être traité comme un module par les environnements d'exécution JavaScript, aussi bien dans les navigateurs que dans les environnements Node.js. Cette distinction est essentielle car les modules possèdent une sémantique différente des scripts JavaScript traditionnels. Les modules disposent de leur propre portée (scope), ce qui signifie que les variables et les fonctions déclarées à l'intérieur d'un module ne sont pas automatiquement disponibles dans la portée globale. Elles doivent être explicitement exportées pour être utilisées par d'autres modules. De même, pour utiliser du code provenant d'autres modules, vous devez l'importer explicitement. Ce mécanisme d'importation et d'exportation favorise l'organisation du code, sa réutilisabilité et permet d'éviter les conflits de nommage. L'utilisation de .mjs permet aux moteurs JavaScript d'analyser et d'exécuter correctement le code en tant que module, activant ainsi des fonctionnalités telles que les instructions import et export. Il s'agit d'un élément crucial du développement JavaScript moderne, facilitant la création de bases de code modulaires et une meilleure gestion des dépendances. L'usage de .mjs aide également à différencier les fichiers de modules des fichiers de script JavaScript traditionnels (utilisant généralement l'extension .js), qui pourraient être interprétés différemment par des moteurs JavaScript plus anciens ou des outils de construction. Cette distinction est particulièrement importante dans les environnements où les fichiers de modules et les scripts coexistent.