Por que converter MJS para JSON?
Às vezes, uma configuração ou fixture reside em um módulo .mjs e você precisa dele como um arquivo .json estático que outras ferramentas possam ler sem executar JavaScript, então você executa o módulo e serializa seu valor exportado.
Como converter MJS para JSON
Comando de linha única no Node.js FREE
Importe o módulo e imprima o JSON: node --input-type=module -e "import('./file.mjs').then(m=>console.log(JSON.stringify(m.default,null,2)))" > file.json.
Pequeno script Node FREE
Escreva um pequeno .mjs que faça import data from './file.mjs' seguido de fs.writeFileSync('file.json', JSON.stringify(data, null, 2)) e execute-o com node.
Visual Studio Code FREE
Se o .mjs já exporta um objeto literal simples, copie esse objeto para um novo arquivo .json e remova a palavra-chave export, colocando aspas em todas as chaves.
Sobre estes formatos
Um arquivo .mjs é um código-fonte JavaScript que o Node.js trata como um módulo ECMAScript, o que significa que ele usa import e export em vez do require do CommonJS. A extensão existe para…
Abrir detalhes de .MJS →Um arquivo JSON é um arquivo de dados em texto simples no formato JavaScript Object Notation, usado por APIs web, configurações de aplicativos e exportações de dados. Qualquer editor de…
Abrir detalhes de .JSON →Qualidade e o que observar
- Apenas dados serializáveis sobrevivem: funções, classes,
undefined,BigInt, símbolos e comentários são descartados ou geram erro durante oJSON.stringify. - Executar o módulo executa seu código, então quaisquer efeitos colaterais (chamadas de rede, gravações de arquivos) ocorrem durante a conversão.
- Se o módulo constrói sua exportação dinamicamente em tempo de execução, o JSON será apenas um instantâneo de uma execução específica.
Perguntas frequentes
Por que não posso converter `.mjs` diretamente para `.json`?
.mjs é código executável que pode conter lógica, importações e funções, enquanto JSON contém apenas valores estáticos. Não há nada para converter a menos que você execute o código primeiro.Como obtenho JSON de um `.mjs`?
JSON.stringify. Grave o resultado em um arquivo .json.O que é perdido?
undefined, BigInt, símbolos e comentários. Apenas dados simples permanecem.