¿Por qué convertir MJS a CJS?
Los usuarios convierten a .CJS para ejecutar código en configuraciones de Node.js antiguas o herramientas que esperan CommonJS, o para distribuir una versión compatible con require junto con una ESM. La lógica sigue siendo la misma; solo cambia la conexión de los módulos.
Cómo convertir MJS a CJS
esbuild EASIEST
Ejecute esbuild input.mjs --format=cjs --platform=node --outfile=output.cjs para generar CommonJS. Añada --bundle si también desea incluir las dependencias.
Babel OPEN-SOURCE
Añada @babel/plugin-transform-modules-commonjs a su configuración, luego ejecute babel input.mjs -o output.cjs para reescribir las importaciones a require.
Rollup FREE
Establezca output.format a cjs en rollup.config.js y compile; Rollup generará un paquete CommonJS desde su entrada ESM.
Acerca de estos formatos
Un archivo .mjs es código fuente de JavaScript que Node.js trata como un módulo ECMAScript, lo que significa que utiliza import y export en lugar del require de CommonJS. La extensión…
Abrir detalles de .MJS →Un archivo .CJS es un archivo de datos utilizado por un software específico.
Abrir detalles de .CJS →Calidad y qué observar
- El
awaitde nivel superior no tiene equivalente en CommonJS y fallará al intentar convertirse. - Las exportaciones con nombre se convierten en propiedades de
module.exports, y la interoperabilidad con las exportaciones por defecto puede variar sutilmente. - Las rutas de
importrelativas eimport.meta.urlpueden necesitar ajustes para la salida en CommonJS.
Preguntas frecuentes
¿Puedo convertirlo a mano?
import x from 'y' por const x = require('y') y export por module.exports.¿Por qué falló mi compilación?
await de nivel superior, que CommonJS no puede expresar; muévalo dentro de una función asíncrona.¿Necesito renombrar a .cjs?
package.json tiene "type": "module"; la extensión .cjs obliga a Node a tratarlo como CommonJS.