javascript - Hur importerar man en JSON5-fil (som man gör med vanlig JSON) i Typescript?


Jag skulle vilja importera en JSON5-fil till ett Javascript-objekt på samma sätt som [man kan importera en JSON-fil](import config från '../config.json').

Visar detta meddelande när man hovrar men det är tydligt där

Cannot find module '../conf/config.json5' or its corresponding type declarations.ts(2307)

Jag har 2 sidofrågor relaterade till den huvudsakliga ovan:

  1. Kommer jag att få intellisense för innehåll inuti .json5, som vanlig json
  2. Fungerar det ens som det fungerar med require()? Måste jag använda import() istället för vanlig import?

Svar #1

Du kommer att behöva paketet för att göra det: json5.

Det finns ett av två sätt som vi kan använda detta på:

Ett: (målmodulsystemet är CommonJS) krävs det

Följande README registrerar vi json5:

import "json5/lib/register";

Då kan du använda require för att importera det:

const config = require("../config/config.json5");

Två: Läsa filen och sedan använda json5 för att analysera den:

import json5 from "json5";
import { readFile } from "fs/promises";

(async () => {
    const text = await fs.readFile("./path/to/config.json5"); // path to config.json5 from entry point

    const config = json5.parse(text);
})();

Du kan också använda den medföljande CLI för att konvertera json5-filer till vanlig json som du kan använda.

Svar #2

Skaparen uppdaterade json5-wikin

Wiki

Du behöver skapa en extra fil med .d.ts-ändelse för att stödja Intellisense.

Relaterade artiklar