首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Node Typescript中导入JSON文件

在Node Typescript中导入JSON文件
EN

Stack Overflow用户
提问于 2017-12-01 05:25:32
回答 2查看 5K关注 0票数 5

我已经尝试了网上找到的每种解决方案,但似乎我无法解决我的具体问题。

我正在尝试将一个静态.json文件导入到一个节点控制器中,所有这些都是在TypeScript中完成的。

我得到的错误是

找不到模块'./data.map.json‘

我已经检查了这条路径100次,绝对是正确的。我已经尝试了要求和导入的每一个组合,以及我在tsconfig.json中能找到的每一个选项,我认为这就是问题所在。

下面是一个干净的最小示例,显示了我的设置。如何在Typescript应用程序中导入静态json文件?

控制器

代码语言:javascript
复制
import * as data from "./data.map.json";

typings.d.ts

代码语言:javascript
复制
declare module "*.json" {
    const value: any;
    export default value;
}

tsconfig.json

代码语言:javascript
复制
{
  "compilerOptions": {
    "outDir": "build",
    "target": "es6",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "typeRoots": ["node_modules/@types"],
    "paths": {
      "*": ["typings.d.ts"]
    }
  },
  "files": [
    "typings.d.ts"
  ],
  "include": [
    "src/**/**.ts",
    "test/**/**.ts"
  ],
  "exclude": [
    "node_modules"
  ],
  "compileOnSave": false
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-21 01:59:22

修复了这个问题,之前忘记在这里发布答案了。我没有尝试导入json文件,而是直接从typescript文件中导出了一个json对象,效果非常好。

将导入行更改为

代码语言:javascript
复制
import {default as map} from "./data.map";

文件data.map.ts

代码语言:javascript
复制
export default {
  "key": "value"
}

您可以访问它,就像您期望的那样

代码语言:javascript
复制
map["key"]   // gives you "value"
票数 -1
EN

Stack Overflow用户

发布于 2018-06-06 04:46:01

从TS 2.9 added support for well typed json imports开始,可能不再需要解决方法。只需添加:

代码语言:javascript
复制
{
  "compilerOptions": {
    "resolveJsonModule": true
  }
}

在您的tsconfig.jsonjsconfig.json中。使用此方法时,当前必须使用带有.json文件扩展名的完整路径:

代码语言:javascript
复制
import * as data from "./data.map.json";

而不是:

代码语言:javascript
复制
import * as data from "./data.map";
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47582860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档