Hvorfor konvertere MJS til JS?
Folk konverterer .mjs til vanlig .js for å slippe den eksplisitte ES-modul-endelsen og la prosjektets package.json bestemme modulsystemet, eller for å levere CommonJS-utdata som eldre Node-versjoner og verktøy kan laste uten ESM.
Hvordan konvertere MJS til JS
Endre navn og sett package.json-type EASIEST
Endre navn på filen til .js og legg til "type": "module" i package.json slik at Node fortsetter å behandle den som en ES-modul.
Babel OPEN-SOURCE
Installer @babel/plugin-transform-modules-commonjs (eller @babel/preset-env) og kjør babel file.mjs --out-file file.js for å skrive om import/export til CommonJS require/module.exports.
esbuild OPEN-SOURCE
Kjør esbuild file.mjs --format=cjs --platform=node --outfile=file.js for å generere en CommonJS .js-pakke fra ES-modulen.
Visual Studio Code FREE
Åpne .mjs i VS Code, endre navn til .js, og bruk editoren til å konvertere import/export-setninger manuelt for små filer.
Om disse formatene
En .mjs-fil er JavaScript-kildekode som Node.js behandler som en ECMAScript-modul, noe som betyr at den bruker import og export i stedet for CommonJS require. Filendelsen eksisterer slik at…
Åpne .MJS-detaljer →En JS-fil er en kildekodefil for JavaScript - ren, lesbar tekst som driver interaktivitet på nettsider og serverapplikasjoner via Node.js. Åpne den i et hvilket som helst…
Åpne .JS-detaljer →Kvalitet og hva du bør passe på
- Å bare endre navn endrer ikke koden; hvis
package.jsonikke er satt til"type": "module", vil ESM-syntaks i en.js-fil kaste enSyntaxError. - Transpilering til CommonJS endrer
import/exporttilrequire/module.exportsog kan endre oppførselen til toppnivå-awaitogimport.meta. - En pakker som esbuild kan inkludere avhengigheter direkte og fjerne kommentarer, så utdata-filen
.jser ikke nødvendigvis en linje-for-linje-kopi av kilden.
Ofte stilte spørsmål
Er `.mjs` det samme som `.js`?
.mjs betyr alltid en ES-modul, mens .js følger det som er satt i package.json - CommonJS som standard, eller ESM hvis "type": "module" er til stede.Kan jeg bare endre navn fra `.mjs` til `.js`?
package.json har "type": "module". Ellers behandler Node .js-filen som CommonJS, og ESM-syntaks vil gi feil.Hvordan beholder jeg ESM etter navneendring?
"type": "module" i din package.json, eller bruk filendelsen .mjs. Begge forteller Node at filen skal tolkes som en ES-modul.