需要一个 json 文件导致错误:找不到模块

Posted

技术标签:

【中文标题】需要一个 json 文件导致错误:找不到模块【英文标题】:require a json file results in an error: Cannot find module 【发布时间】:2019-04-18 14:22:42 【问题描述】:

在启用了checkJs 的VsCode 中打开的nodej 项目中,当需要像

这样的json 文件时
const myFile = require('./my-file.json')

这会产生错误[ts] Cannot find module

如何消除错误警告?

我尝试过:

    "resolveJsonModule": true 添加到compilerOptions 中的jsconfig.json,但它不起作用。

    使用此内容创建一个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) 检查这个答案,也许它可以帮助你:***.com/questions/49996456/… 【参考方案1】:

你应该添加

"resolveJsonModule":true

作为 compilerOptions 的一部分到 tsconfig.json。

【讨论】:

【参考方案2】:

我在尝试从 typescript 项目中的文件导入 json 时遇到了类似的问题。

我用过

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

而不是

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

它成功了。

【讨论】:

这只是给了我“不能在模块外使用 import 语句”

以上是关于需要一个 json 文件导致错误:找不到模块的主要内容,如果未能解决你的问题,请参考以下文章

在TypeScript中导入远程JSON文件时,出现 "找不到模块 "的错误。

错误:找不到模块“ejs”,即使它已在 package.json 中列出

require(variable) 导致错误找不到模块“。”

Heroku - 构建错误 - 找不到模块请求

将 Electron 应用程序打包到 ASAR 中会导致找不到模块错误

安装 Perl 模块时出现“致命错误:找不到‘EXTERN.h’文件”