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

Dev*_*dse 9 javascript typescript vue.js

我刚刚创建了一个干净的 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';
Run Code Online (Sandbox Code Playgroud)

VSCode 中的错误 Can't find module '@/assets/hi.json'

运行 NPM Serve 时弹出以下错误: 在此处输入图片说明

我已经尝试过的

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

在 TypeScript 中导入 json 文件

导入json文件时打字稿编译器错误

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

编辑1:

好的,我现在设法npm run serve通过将其添加到 tsconfig.json来使其在运行时正常工作:

{
  "compilerOptions": {
    "resolveJsonModule": true
  }
}
Run Code Online (Sandbox Code Playgroud)

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

wwe*_*ner 8

只需添加resolveJsonModule": true到您的tsconfig.jsonunder 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,
Run Code Online (Sandbox Code Playgroud)