Wat is het MJS-bestandsformaat?
Een .mjs-bestand is JavaScript-broncode die Node.js laadt als een ECMAScript-module (ESM). De extensie is een signaal: elk bestand dat eindigt op .mjs wordt behandeld als een ES-module, met gebruik van import- en export-statements, zelfs wanneer de package.json van het project niets vermeldt over het moduletype.
Node.js voegde de extensie toe in versie 8.5.0 (2017), eerst achter de --experimental-modules-vlag, en maakte deze stabiel in versie 12. Het bestaat om twee modulesystemen uit elkaar te houden. Oudere Node-code gebruikt CommonJS met require() en module.exports, terwijl moderne code ESM gebruikt. Een gewoon .js-bestand is standaard CommonJS, dus .mjs biedt een ondubbelzinnige manier om voor modules te kiezen. De bijbehorende .cjs-extensie dwingt CommonJS af in de andere richting.
Code in een .mjs-bestand draait automatisch in „strict mode” en kan top-level await en het import.meta-object gebruiken, die beide niet werken in CommonJS. Bundlers zoals webpack, Rollup en Vite kunnen .mjs zowel lezen als schrijven.
Beveiliging & veiligheid
RISICO: 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.
Formaatdetails
in een notendop- 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.
Programma's die MJS-bestanden openen
Technische details
diepe specificaties| 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 |
| Uitgebracht | 2017 (Node.js v8.5.0) |
| Laatste versie | ECMAScript 2015 module system (stabilized in Node.js v12+) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | nodejs.org |
MJS conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over MJS-bestanden.