Qu'est-ce que le format de fichier MJS ?
Un fichier .mjs est un code source JavaScript que Node.js charge en tant que module ECMAScript (ESM). L'extension sert de signal : tout fichier se terminant par .mjs est traité comme un module ES, utilisant les instructions import et export, même lorsque le package.json du projet ne spécifie rien sur le type de module.
Node.js a ajouté l'extension dans la version 8.5.0 (2017), d'abord derrière le drapeau --experimental-modules, puis l'a stabilisée dans la version 12. Elle existe pour séparer deux systèmes de modules. L'ancien code Node utilise CommonJS avec require() et module.exports, tandis que le code moderne utilise ESM. Un simple fichier .js est CommonJS par défaut, donc .mjs offre un moyen sans ambiguïté d'opter pour les modules. L'extension correspondante .cjs force CommonJS dans l'autre sens.
Le code d'un fichier .mjs s'exécute automatiquement en mode strict et peut utiliser await au niveau supérieur (top-level) ainsi que l'objet import.meta, ce qui ne fonctionne pas dans CommonJS. Les outils de regroupement (bundlers) tels que webpack, Rollup et Vite lisent et écrivent tous le format .mjs.
Sécurité et sûreté
RISQUE : 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.
Détails du format
en bref- 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.
Programmes qui ouvrent les fichiers MJS
Détails techniques
spécifications approfondies| 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 |
| Publié | 2017 (Node.js v8.5.0) |
| Dernière version | ECMAScript 2015 module system (stabilized in Node.js v12+) |
| Standard ouvert | Oui · libre de droits |
| Spécification | nodejs.org |
Conversions MJS
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers MJS.