L'estensione di file .mjs viene utilizzata per i moduli ECMAScript JavaScript. Essa indica che il file deve essere trattato come un modulo dagli ambienti di runtime JavaScript, sia nei browser che negli ambienti Node.js. Questa distinzione è fondamentale poiché i moduli possiedono semantiche differenti rispetto ai tradizionali script JavaScript. I moduli hanno il proprio ambito (scope), il che significa che le variabili e le funzioni dichiarate al loro interno non sono automaticamente disponibili nell'ambito globale. Devono essere esplicitamente esportate per essere utilizzate da altri moduli. Analogamente, per utilizzare codice proveniente da altri moduli, è necessario importarlo esplicitamente. Questo meccanismo di importazione ed esportazione promuove l'organizzazione del codice, la riutilizzabilità e previene conflitti di denominazione. L'utilizzo di .mjs consente ai motori JavaScript di analizzare ed eseguire correttamente il codice come modulo, abilitando funzionalità come le istruzioni import ed export. Si tratta di una parte cruciale dello sviluppo JavaScript moderno, che facilita basi di codice modulari e una migliore gestione delle dipendenze. L'uso di .mjs aiuta inoltre a differenziare i file modulo dai file script JavaScript tradizionali (che solitamente utilizzano l'estensione .js), i quali potrebbero essere interpretati diversamente dai motori JavaScript meno recenti o dagli strumenti di build. Tale distinzione è particolarmente importante in ambienti in cui coesistono sia file modulo che file script.