Typescript: Json5 with import

Issue

PrintScreen

Shows this message on hovering but it’s clearly there

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

I have 2 questions other than the issue:

  1. Will I get intelisense for contents inside .json5, like regular json
  2. Does it even work like it works with require()? Do I have to use import() instead of regular import ?

Solution

You will need the package to do so: json5.

There are one of two ways we can use this:

One: (target module system is CommonJS) require it

Following the README, we register json5:

import "json5/lib/register";

Then you can use require to import it:

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

Two: Reading the file and then using json5 to parse it:

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);
})();

You can also use the provided CLI to convert json5 files to regular json that you can use.

Answered By – youdateme

Answer Checked By – Senaida (AngularFixing Volunteer)

Leave a Reply

Your email address will not be published.