Hvorfor konvertere MJS til JS?
Folk konverterer .mjs til almindelig .js for at slippe for det eksplicitte ES-modul-filtypenavn og lade projektets package.json bestemme modulsystemet, eller for at levere CommonJS-output, som ældre Node-versioner og værktøjer kan indlæse uden ESM.
Sådan konverterer du MJS til JS
Omdøb og indstil package.json type EASIEST
Omdøb filen til .js og tilføj "type": "module" til package.json, så Node fortsat behandler den som et ES-modul.
Babel OPEN-SOURCE
Installer @babel/plugin-transform-modules-commonjs (eller @babel/preset-env) og kør babel file.mjs --out-file file.js for at omskrive import/export til CommonJS require/module.exports.
esbuild OPEN-SOURCE
Kør esbuild file.mjs --format=cjs --platform=node --outfile=file.js for at generere en CommonJS .js-pakke fra ES-modulet.
Visual Studio Code FREE
Åbn .mjs i VS Code, omdøb den til .js, og brug editoren til at konvertere import/export-sætninger manuelt for små filer.
Om disse formater
En .mjs-fil er JavaScript-kildekode, som Node.js behandler som et ECMAScript-modul, hvilket betyder, at den bruger import og export i stedet for CommonJS require. Filtypen eksisterer, så…
Åbn .MJS detaljer →En JS-fil er en JavaScript-kildekodefil - almindelig, læsbar tekst, der driver interaktivitet på websider og server-side apps via Node.js. Åbn den i enhver kodeeditor som VS Code eller…
Åbn .JS detaljer →Kvalitet & hvad man skal være opmærksom på
- Omdøbning alene ændrer ikke koden; hvis
package.jsonikke er indstillet til"type": "module", vil ESM-syntaks i en.js-fil kaste enSyntaxError. - Transpilering til CommonJS ændrer
import/exporttilrequire/module.exportsog kan ændre adfærden for top-levelawaitogimport.meta. - En bundler som esbuild kan indlejre afhængigheder og fjerne kommentarer, så output-filen
.jser ikke en linje-for-linje kopi af kilden.
Ofte stillede spørgsmål
Er `.mjs` det samme som `.js`?
.mjs betyder altid et ES-modul, mens .js følger hvad end package.json angiver - CommonJS som standard, eller ESM hvis "type": "module" er til stede.Kan jeg bare omdøbe `.mjs` til `.js`?
package.json har "type": "module". Ellers behandler Node .js-filen som CommonJS, og ESM-syntaks vil fejle.Hvordan beholder jeg ESM efter omdøbning?
"type": "module" til din package.json, eller brug filtypenavnet .mjs. Begge dele fortæller Node, at filen skal parses som et ES-modul.