如何使用 VueJS / Typescript 导入 JSON 文件?

Posted

技术标签:

【中文标题】如何使用 VueJS / Typescript 导入 JSON 文件?【英文标题】:How do you import a JSON file with VueJS / Typescript? 【发布时间】:2019-06-25 21:11:17 【问题描述】:

我刚刚创建了一个干净的 VueJS 新项目,但无法加载 JSON 文件。

复制/发行

为了便于复制,我为我的问题创建了一个 Github 存储库: https://github.com/devedse/VueJSImportJsonFile

在 Home.vue 页面中,我试图让 Json 加载工作。 (https://github.com/devedse/VueJSImportJsonFile/blob/master/src/views/Home.vue)

当您在 VSCode 中打开此解决方案时,以下行显示错误:

import theJson from '@/assets/hi.json';

Can't find module '@/assets/hi.json'

运行 NPM Serve 时会弹出以下错误:

我已经尝试过的

我已经搜索了所有的 *** 并尝试了以下帖子中的所有内容:

Importing json file in TypeScript

Typescript compiler error when importing json file

https://github.com/chybie/ts-json

编辑 1:

好的,我现在在运行 npm run serve 时设法让它工作,方法是将它添加到 tsconfig.json:


  "compilerOptions": 
    "resolveJsonModule": true
  

但是 VSCode 中的错误似乎仍然存在。有没有办法解决这个问题?

【问题讨论】:

【参考方案1】:

只需将resolveJsonModule": true 添加到tsconfig.json 下的compilerOptions

diff --git a/tsconfig.json b/tsconfig.json
index 499f5e2..a05dab1 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -6,6 +6,7 @@
     "jsx": "preserve",
     "importHelpers": true,
     "moduleResolution": "node",
+    "resolveJsonModule": true,
     "esModuleInterop": true,
     "allowSyntheticDefaultImports": true,
     "sourceMap": true,

【讨论】:

以上是关于如何使用 VueJS / Typescript 导入 JSON 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Vue 类组件访问 VueJS 3 和 Typescript 中的 HTML 引用?

如何将 Storybook 安装到 VueJS 2 TypeScript 项目?

使用 typescript 在 vuejs 中声明原型属性

在普通的 VueJS 项目中使用 Typescript 函数

如何使 @Model 和 @Emit 在带有 Typescript 的 VueJs 中一起工作?

如何将 html 数据绑定到 vuejs 和 typescript 中的对象