我有一个Vue3/Vite项目,其中一些数据必须从external JSON文件中读取.

但是当我构建项目时,JSON文件被Bundle 在一起.

我需要将JSON文件保存在外部.

我试过的是:

  1. 第一次try vite.config.ts个个
export default defineConfig({
  optimizeDeps:{
    exclude: ['myfile.json'] // then i tried ['**/myfile.json']
  },
})
  1. 第二次try

vite.config.ts

assetsInclude: ['**/*.json'],
assetsInlineLimit: 0,
  1. 第三次try

App.vue

let jsonData = import.meta.glob('/public/assets/myfile.json')

我做错了什么--有没有一种简单的方法将JSON文件保存在外部?

推荐答案

在VITE中,您直接使用fetch而不是import来获取数据.

这场讨论有official answer

这就是如何实现你想要的

<script setup>
import { onMounted } from "vue";

onMounted(async () => {
  const response = await fetch("/file.json");
  const file = await response.json();
  console.log("cool file", file);
});
</script>

具有以下 struct

enter image description here

file.json个人

{
  "name": "bob",
  "age": 29
}

并得出以下结果

enter image description here

Vue.js相关问答推荐

Vue 3:插槽属性 - 可以通过 props 传递数据吗?

在Vue 2中,是否可能在不创建组件的情况下注入代码块?

通过元素加中的正则表达式输入电话号码格式

使用 vue / nuxt js 切换 fontawesome 图标

确保在渲染组件之前加载 Vuex 状态

当前端和后端位于虚拟 docker 网络中时,如何使用 axios 寻址后端主机

如何在某些异步数据(在 Vuex 存储中)加载之前防止任何路由?

VueJS + Typescript:类型上不存在属性

事件 click点击的无效处理程序:未定义

Vue-test-utils:在单个测试中多次使用 $nextTick

如何在某些路由上隐藏全局组件(例如导航栏)?

Vuex - 何时从 http 服务器加载/初始化存储数据

如何在 vue.config.js 中为生产设置 API 路径?

Vue 组件中的组件渲染函数中可能存在无限更新循环警告

如何在 Vue3 设置标签中定义组件名称?

如何突出显示 Vuetify 菜单中的选定项目?

Vue在按钮单击时添加一个组件

Vue路由在新页面上回到顶部

VueJS 按键查找元素

如何删除 vue cli 2?