Che cos'è il formato di file MJS?
Un file .mjs è codice sorgente JavaScript che Node.js carica come modulo ECMAScript (ESM). L'estensione è un segnale: qualsiasi file che termina in .mjs viene trattato come un modulo ES, utilizzando le istruzioni import ed export, anche quando il package.json del progetto non specifica nulla sul tipo di modulo.
Node.js ha aggiunto l'estensione nella versione 8.5.0 (2017), inizialmente dietro il flag --experimental-modules, e l'ha resa stabile nella versione 12. Esiste per tenere separati i due sistemi di moduli. Il vecchio codice Node utilizza CommonJS con require() e module.exports, mentre il codice moderno utilizza ESM. Un semplice file .js è CommonJS per impostazione predefinita, quindi .mjs offre un modo univoco per optare per i moduli. L'estensione corrispondente .cjs forza CommonJS nella direzione opposta.
Il codice in un file .mjs viene eseguito automaticamente in «strict mode» e può utilizzare await a livello superiore e l'oggetto import.meta, nessuno dei quali funziona in CommonJS. Bundler come webpack, Rollup e Vite leggono e scrivono file .mjs.
Sicurezza e incolumità
RISCHIO: MEDIUMAn .mjs file is executable JavaScript. Running one with node executes whatever code it contains, so an untrusted .mjs file can perform harmful actions such as reading files or making network requests. Opening it in a text editor is safe; only run .mjs files from sources you trust, and review the code first.
Dettagli del formato
in sintesi- Generic minified JavaScript module - Some build tools emit .mjs to mark a bundled or minified ES module output rather than a hand-written source file.
Programmi che aprono file MJS
Dettagli tecnici
specifiche approfondite| Encoding | UTF-8 plain text |
| Byte order | Not applicable (text file, no byte-order dependence; BOM optional but discouraged) |
| Container | None; raw JavaScript source |
| Typical size | A few hundred bytes to tens of kilobytes per module |
| Structure | Human-readable JavaScript source using the ECMAScript module system. Uses static import and export statements, supports top-level await and import.meta, and runs in strict mode by default. Each .mjs file is a module with its own top-level scope; variables are not shared globally. |
| Integrity | None built in; integrity is handled externally (npm package hashes, Subresource Integrity on the web, git). |
| Platforms | Windows, macOS, Linux, BSD, any OS running Node.js or a modern browser |
| Notes | Node.js treats any .mjs file as an ES module regardless of the package.json "type" field, which is the main reason the extension exists. The counterpart .cjs forces CommonJS. Browsers can also load .mjs via <script type="module"> provided the server sends a JavaScript MIME type. Bundlers such as webpack, Rollup, esbuild and Vite read and emit .mjs. |
| Runs In | Node.js runtime and modern web browsers (via script type=module) |
| Strict Mode | Always enabled; ES modules run in strict mode automatically |
| Rilasciato | 2017 (Node.js v8.5.0) |
| Ultima versione | ECMAScript 2015 module system (stabilized in Node.js v12+) |
| Standard aperto | Sì · royalty-free |
| Specifica | nodejs.org |
Conversioni MJS
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file MJS.