require a json file results in an error: Cannot find module
在启用 checkJs 的 VsCode 中打开的 nodej 项目中,当需要像
这样的 json 文件时
1
| const myFile = require('./my-file.json') |
这会产生错误[ts] Cannot find module。
如何消除错误警告?
我尝试过:
将 "resolveJsonModule": true 添加到 jsconfig.json 中的 compilerOptions,但它不起作用。
使用以下内容创建一个 typing.d.ts 文件:
declare module '*.json' {
const value: any;
export default value;
}
但是现在,有一个错误 [ts] Type 'typeof import("*.json")' must have a '[Symbol.iterator]()' method that returns an iterator. [2488]
- 执行 require 时不需要指定 json 扩展名。 const myFile = require(\\'./my-file\\');
-
谢谢,但如果没有扩展名,也会出现同样的错误。出现错误是因为 json 文件不是 module。 (-> 它没有 module.exports)
-
检查这个答案,也许它可以帮助你:stackoverflow.com/questions/49996456/...
你应该添加
"resolveJsonModule":true
作为 tsconfig.json 的 compilerOptions 的一部分。
我在尝试从 typescript 项目中的文件导入 json 时遇到了类似的问题。
我用过
1
| import * as data from"module/path/filename.json" |
而不是
1
| const data = require("module/path/filename.json") |
它成功了。