Dlaczego konwertować MJS na JSON?
Czasami konfiguracja lub dane testowe znajdują się w module .mjs, a potrzebujesz ich jako statycznego pliku .json, który inne narzędzia mogą odczytać bez uruchamiania JavaScriptu, więc wykonujesz moduł i serializujesz jego wyeksportowaną wartość.
Jak przekonwertować MJS na JSON
Jednolinijkowiec Node.js FREE
Zaimportuj moduł i wydrukuj JSON: node --input-type=module -e "import('./file.mjs').then(m=>console.log(JSON.stringify(m.default,null,2)))" > file.json.
Krótki skrypt Node FREE
Napisz krótki plik .mjs, który wykonuje import data from './file.mjs', a następnie fs.writeFileSync('file.json', JSON.stringify(data, null, 2)) i uruchom go za pomocą node.
Visual Studio Code FREE
Jeśli .mjs eksportuje już zwykły literał obiektowy, skopiuj ten obiekt do nowego pliku .json i usuń słowo kluczowe export, ujmując wszystkie klucze w cudzysłowy.
O tych formatach
Plik .mjs to kod źródłowy JavaScript, który Node.js traktuje jako moduł ECMAScript, co oznacza, że używa on import i export zamiast CommonJS require. Rozszerzenie to istnieje, aby Node mógł…
Otwórz szczegóły .MJS →Plik JSON to plik danych w formacie tekstowym JavaScript Object Notation, używany przez interfejsy API, konfiguracje aplikacji i eksporty danych. Otworzy go dowolny edytor tekstu - Notatnik…
Otwórz szczegóły .JSON →Jakość i na co uważać
- Przetrwają tylko dane serializowalne: funkcje, klasy,
undefined,BigInt, symbole i komentarze zostaną pominięte lub spowodują błąd podczasJSON.stringify. - Uruchomienie modułu wykonuje jego kod, więc wszelkie efekty uboczne (połączenia sieciowe, zapisy plików) wystąpią podczas konwersji.
- Jeśli moduł buduje swój eksport dynamicznie w czasie wykonywania, JSON będzie tylko migawką jednego konkretnego uruchomienia.
Najczęściej zadawane pytania
Dlaczego nie mogę przekonwertować .mjs bezpośrednio na .json?
.mjs to kod wykonywalny, który może zawierać logikę, importy i funkcje, podczas gdy JSON przechowuje tylko wartości statyczne. Nie ma czego konwertować, dopóki najpierw nie uruchomisz kodu.Jak wyciągnąć JSON z .mjs?
JSON.stringify. Zapisz wynik w pliku .json.Co zostaje utracone?
undefined, BigInt, symbole i komentarze. Pozostają tylko czyste dane.