Perché convertire MJS in JSON?
A volte una configurazione o un fixture risiede in un modulo .mjs e ne hai bisogno come file .json statico che altri strumenti possano leggere senza eseguire JavaScript, quindi esegui il modulo e serializzi il suo valore esportato.
Come convertire MJS in JSON
Comando rapido Node.js FREE
Importa il modulo e stampa il JSON: node --input-type=module -e "import('./file.mjs').then(m=>console.log(JSON.stringify(m.default,null,2)))" > file.json.
Piccolo script Node FREE
Scrivi un breve .mjs che esegua import data from './file.mjs' poi fs.writeFileSync('file.json', JSON.stringify(data, null, 2)) ed eseguilo con node.
Visual Studio Code FREE
Se il file .mjs esporta già un oggetto letterale semplice, copia quell'oggetto in un nuovo file .json e rimuovi la parola chiave export, mettendo tra virgolette tutte le chiavi.
Informazioni su questi formati
Un file .mjs è codice sorgente JavaScript che Node.js tratta come un modulo ECMAScript, il che significa che utilizza import ed export invece del require di CommonJS. L'estensione esiste…
Apri dettagli .MJS →Un file JSON è un file di dati in formato testo semplice (plain-text) basato sulla JavaScript Object Notation, utilizzato da API web, configurazioni di app ed esportazioni di dati.…
Apri dettagli .JSON →Qualità e a cosa prestare attenzione
- Sopravvivono solo i dati serializzabili: funzioni, classi,
undefined,BigInt, simboli e commenti vengono eliminati o generano errori duranteJSON.stringify. - L'esecuzione del modulo esegue il suo codice, quindi eventuali effetti collaterali (chiamate di rete, scritture di file) si verificano durante la conversione.
- Se il modulo crea la sua esportazione dinamicamente in fase di esecuzione, il JSON è solo un'istantanea di una particolare esecuzione.
Domande frequenti
Perché non posso convertire direttamente .mjs in .json?
.mjs è codice eseguibile che può contenere logica, importazioni e funzioni, mentre JSON contiene solo valori statici. Non c'è nulla da convertire a meno di non eseguire prima il codice.Come ottengo un JSON da un .mjs?
JSON.stringify. Scrivi il risultato in un file .json.Cosa viene perso?
undefined, BigInt, simboli e commenti. Rimangono solo i dati semplici.