Hvad er MJS-filformatet?
En .mjs-fil er JavaScript-kildekode, som Node.js indlæser som et ECMAScript-modul (ESM). Filtypen er et signal: enhver fil, der slutter på .mjs, behandles som et ES-modul ved hjælp af import- og export-erklæringer, selv når projektets package.json ikke siger noget om modultype.
Node.js tilføjede filtypen i version 8.5.0 (2017), først bag flaget --experimental-modules, og gjorde den stabil i version 12. Den eksisterer for at holde to modulsystemer adskilt. Ældre Node-kode bruger CommonJS med require() og module.exports, mens moderne kode bruger ESM. En almindelig .js-fil er som standard CommonJS, så .mjs giver en utvetydig måde at vælge moduler til. Den tilsvarende .cjs-filtype gennemtvinger CommonJS i den anden retning.
Kode i en .mjs-fil kører automatisk i «strict mode» og kan bruge «top-level» await og import.meta-objektet, hvilket ingen af delene fungerer i CommonJS. Bundlere såsom webpack, Rollup og Vite både læser og skriver .mjs.
Sikkerhed og tryghed
RISIKO: 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.
Formatdetaljer
kort fortalt- 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.
Programmer der åbner MJS-filer
Tekniske detaljer
dyb specifikation| 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 |
| Udgivet | 2017 (Node.js v8.5.0) |
| Seneste version | ECMAScript 2015 module system (stabilized in Node.js v12+) |
| Åben standard | Ja · royaltyfri |
| Specifikation | nodejs.org |
MJS-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om MJS-filer.