¿Por qué convertir MJS a JSON?
A veces, una configuración o un «fixture» reside en un módulo .mjs y lo necesitas como un archivo .json estático que otras herramientas puedan leer sin ejecutar JavaScript, por lo que ejecutas el módulo y serializas su valor exportado.
Cómo convertir MJS a JSON
Comando de una sola línea en Node.js FREE
Importa el módulo e imprime el JSON: node --input-type=module -e "import('./file.mjs').then(m=>console.log(JSON.stringify(m.default,null,2)))" > file.json.
Pequeño script de Node FREE
Escribe un breve .mjs que haga import data from './file.mjs', luego fs.writeFileSync('file.json', JSON.stringify(data, null, 2)) y ejecútalo con node.
Visual Studio Code FREE
Si el .mjs ya exporta un objeto literal simple, copia ese objeto en un nuevo archivo .json y elimina la palabra clave export, poniendo entre comillas todas las claves.
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 JSON es un archivo de datos de texto plano en formato JavaScript Object Notation, utilizado por APIs web, configuraciones de aplicaciones y exportaciones de datos. Cualquier…
Abrir detalles de .JSON →Calidad y qué observar
- Solo sobreviven los datos serializables: las funciones, clases,
undefined,BigInt, símbolos y comentarios se descartan o lanzan un error duranteJSON.stringify. - Ejecutar el módulo ejecuta su código, por lo que cualquier efecto secundario (llamadas de red, escritura de archivos) ocurrirá durante la conversión.
- Si el módulo construye su exportación dinámicamente en tiempo de ejecución, el JSON es solo una instantánea de una ejecución particular.
Preguntas frecuentes
¿Por qué no puedo convertir `.mjs` directamente a `.json`?
.mjs es código ejecutable que puede contener lógica, importaciones y funciones, mientras que JSON solo contiene valores estáticos. No hay nada que convertir a menos que ejecutes el código primero.¿Cómo obtengo JSON de un `.mjs`?
JSON.stringify. Escribe el resultado en un archivo .json.¿Qué se pierde?
undefined, BigInt, símbolos y comentarios. Solo quedan los datos puros.