Hvorfor konvertere MJS til CJS?
Folk konverterer til .CJS for å kjøre kode i eldre Node.js-oppsett eller verktøy som forventer CommonJS, eller for å levere et require-kompatibelt bygg ved siden av et ESM-bygg. Logikken forblir den samme; bare modul-koblingen endres.
Hvordan konvertere MJS til CJS
esbuild EASIEST
Kjør esbuild input.mjs --format=cjs --platform=node --outfile=output.cjs for å generere CommonJS. Legg til --bundle hvis du også vil inkludere avhengigheter.
Babel OPEN-SOURCE
Legg til @babel/plugin-transform-modules-commonjs i konfigurasjonen din, og kjør deretter babel input.mjs -o output.cjs for å skrive om importer til require.
Rollup FREE
Sett output.format til cjs i rollup.config.js og bygg; Rollup genererer en CommonJS-pakke fra din ESM-oppstartfil.
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 .CJS-fil er en datafil som brukes av spesifikk programvare.
Åpne .CJS-detaljer →Kvalitet og hva du bør passe på
- Toppnivå-
awaithar ingen CommonJS-ekvivalent og vil feile ved konvertering. - Navngitte eksporter blir egenskaper på
module.exports, og samspill med standard-eksporter (default exports) kan variere noe. - Relative
import-stier ogimport.meta.urlkan trenge justering for CommonJS-utdata.
Ofte stilte spørsmål
Kan jeg konvertere manuelt?
import x from 'y' med const x = require('y') og export med module.exports.Hvorfor feilet byggingen min?
await, som CommonJS ikke kan uttrykke; flytt det inn i en asynkron funksjon.Må jeg endre navn til .cjs?
package.json har "type": "module"; filendelsen .cjs tvinger Node til å behandle den som CommonJS.