Varför konvertera MJS till JSON?
Ibland finns en konfiguration eller fixtur i en .mjs-modul och du behöver den som en statisk .json-fil som andra verktyg kan läsa utan att köra JavaScript, så du kör modulen och serialiserar dess exporterade värde.
Hur man konverterar MJS till JSON
Node.js enradare FREE
Importera modulen och skriv ut JSON: node --input-type=module -e "import('./file.mjs').then(m=>console.log(JSON.stringify(m.default,null,2)))" > file.json.
Litet Node-skript FREE
Skriv en kort .mjs som gör import data from './file.mjs' följt av fs.writeFileSync('file.json', JSON.stringify(data, null, 2)) och kör den med node.
Visual Studio Code FREE
Om .mjs-filen redan exporterar ett vanligt objekt-literal, kopiera det objektet till en ny .json-fil och ta bort nyckelordet export, samt sätt citattecken runt alla nycklar.
Om dessa format
En .mjs-fil är JavaScript-källkod som Node.js behandlar som en ECMAScript-modul, vilket innebär att den använder import och export istället för CommonJS require. Filändelsen finns för att…
Öppna detaljer för .MJS →En JSON-fil är en datafil i klartext i formatet JavaScript Object Notation, som används av webb-API:er, appkonfigurationer och dataexporter. Vilken textredigerare som helst kan öppna den -…
Öppna detaljer för .JSON →Kvalitet & vad man bör tänka på
- Endast serialiserbar data överlever: funktioner, klasser,
undefined,BigInt, symboler och kommentarer försvinner eller kastar fel underJSON.stringify. - Att köra modulen exekverar dess kod, så eventuella sidoeffekter (nätverksanrop, filskrivningar) sker under konverteringen.
- Om modulen bygger sin export dynamiskt vid körning är JSON-filen endast en ögonblicksbild av en specifik körning.
Vanliga frågor
Varför kan jag inte konvertera `.mjs` direkt till `.json`?
.mjs är körbar kod som kan innehålla logik, importer och funktioner, medan JSON endast innehåller statiska värden. Det finns inget att konvertera om du inte kör koden först.Hur får jag ut JSON från en `.mjs`?
JSON.stringify. Skriv resultatet till en .json-fil.Vad går förlorat?
undefined, BigInt, symboler och kommentarer. Endast ren data återstår.