L'estensione di file .mjs viene utilizzata per i moduli JavaScript ECMAScript. Indica che il file deve essere trattato come un modulo dai runtime JavaScript, sia all'interno dei browser che negli ambienti Node.js. Questo aspetto è fondamentale poiché i moduli possiedono una semantica differente rispetto ai tradizionali script JavaScript. I moduli hanno il proprio scope (ambito), il che significa che le variabili e le funzioni dichiarate all'interno di un modulo non sono automaticamente disponibili nello scope globale. Esse devono essere esplicitamente esportate per poter essere utilizzate da altri moduli. Allo stesso modo, per utilizzare il codice proveniente da altri moduli, è necessario importarlo esplicitamente. Questo meccanismo di importazione ed esportazione esplicita favorisce l'organizzazione del codice, la riutilizzabilità ed evita conflitti di denominazione tra le variabili. L'uso dell'estensione .mjs consente ai motori JavaScript di analizzare ed eseguire correttamente il codice come modulo, abilitando funzionalità moderne come le istruzioni 'import' ed 'export'. Rappresenta una parte cruciale dello sviluppo JavaScript contemporaneo, facilitando la creazione di codebase modulari e una migliore gestione delle dipendenze. L'adozione 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 più datati o dagli strumenti di compilazione. Questa distinzione risulta particolarmente importante in ambienti di sviluppo complessi in cui coesistono sia file modulo che file script.