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, tant dans les navigateurs que dans les environnements Node.js. Ceci est crucial 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 fonctions déclarées à l'intérieur d'un module ne sont pas automatiquement accessibles dans la portée globale. Elles doivent être explicitement exportées (export) pour être utilisées par d'autres modules. Inversement, pour utiliser le code provenant d'autres modules, il faut explicitement l'importer (import). Ce mécanisme explicite d'importation/exportation favorise l'organisation du code, la réutilisabilité et évite les conflits de noms. L'utilisation de .mjs permet aux moteurs JavaScript d'analyser et d'exécuter correctement le code en tant que module, activant des fonctionnalités telles que les instructions import et export. C'est un élément fondamental du développement JavaScript moderne, facilitant les bases de code modulaires et une meilleure gestion des dépendances. L'usage de .mjs aide également à différencier les fichiers de module des fichiers de script JavaScript traditionnels (utilisant typiquement l'extension .js), qui pourraient être interprétés différemment par des moteurs JavaScript plus anciens ou des outils de construction (build tools). Cette distinction est particulièrement importante dans les environnements où les fichiers de module et de script coexistent.