Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

require a json file results in an error: Cannot find module

In a nodej project open in VsCode with checkJs enabled, when a json file is required like

const myFile = require('./my-file.json')

This makes an error [ts] Cannot find module.

How is it possible to remove the error warning?

I tried to:

  1. add "resolveJsonModule": true to the compilerOptions in jsconfig.json, but it does not work.

  2. create a typing.d.ts file with this content:

    declare module '*.json' { const value: any; export default value; } But now, there is an error [ts] Type 'typeof import("*.json")' must have a '[Symbol.iterator]()' method that returns an iterator. [2488]

like image 989
François Romain Avatar asked Nov 15 '18 13:11

François Romain


People also ask

How do I get data from JSON file in Vue?

To get data from a local JSON file, we need to import the file into the component where we want to process the data. We do the import just like we would with a component, except the component name is replaced with whatever we want to call the data set.


2 Answers

You should add

"resolveJsonModule":true

as part of compilerOptions to tsconfig.json.

like image 153
egdfer Avatar answered Oct 21 '22 10:10

egdfer


I had a similar problem when trying to import json from a file in a typescript project.

I used

import * as data from "module/path/filename.json"

instead of

const data = require("module/path/filename.json")

and it worked.

like image 26
gvlasov Avatar answered Oct 21 '22 12:10

gvlasov