网站搜索

Vue3 和 Vite 使用 Typescript 加载 JSON 失败


我正在从 Vue 2 迁移到 Vue 3。先做测试应用。

我在导入 JSON 文件时遇到问题。

文件存在。尝试了所有这些变体:

import { sites } from "./data/sites.json";
import sites from "./data/sites.json";
import sites from "../data/sites.json";
import sites from "@/data/sites.json";

https://www.koderhq.com/tutorial/vue/local-json/ 和 https://codesandbox.io/s/z2mpz6zq23?file=/src/components/HelloWorld.vue

沙盒链接 - 开发 - 这不起作用

谢谢 @Tolbxela 我试过了那个:

答案#1

你的 Codesandbox 链接无法运行,所以我在 StackBlitz 上重新创建了它。

你的目录布局看起来像这样:

src
├── components
│   └── GoodTable.vue
├── data
│   └── sites.json

请注意 import rows from './data/sites.json' 位于 src/components/GoodTable.vue 中。./data/sites.json 是相对路径,因此查找是相对于导入文件所在的目录,也就是 src/components。src/components/data/sites.json 不存在,因此 Vite 会显示错误。

JSON 文件实际上位于 src/data/sites.json 的上一级父目录,因此您需要更新导入路径为:

import rows from '../data/sites.json'

演示

答案#2

您在沙箱中的应用运行良好。请查看截图。

我猜问题出在你的浏览器上。请确保它支持 import 语句(MDN)。

更新:

我已经检查了你的截图。你在 Vite 中有一个导入问题 (plugin:vite:import-analysis)

查看这些链接以解决问题:

Vite - 动态导入

StackOverflow - 插件:vite:import-analysis - 无法解析导入分析的源,因为内容包含无效的 JS 语法。- Vue 3