vite import.meta.glob('./modules/**/*.ts', { eager: true }) 处理?
问题描述:
import.meta.globEager 被遗弃了,,不想用了。
// 加入到路由集合中 Object.keys(modules).forEach((key) => { const mod = modules[key].default || {}; const modList = Array.isArray(mod) ? [...mod] : [mod]; routeModuleList.push(...modList); });
之前使用这个处理的,现在不用了。
改为import.meta.glob
module/admin.ts
import { RouteRecordRaw } from 'vue-router'; export const adminRouter: Array<RouteRecordRaw> = [ { path: "/", name: "home", meta: { title: "首页", }, component: () => import("@/views/dashboard/index.vue"), }, ]
base.ts
import { RouteRecordRaw } from 'vue-router'; const routeModuleList: any = []; const modules = import.meta.glob('./modules/**/*.ts', { eager: true });
base.ts 里的modules 怎么处理?
打印出来
这个格式按照vite官网里处理不了啊。
蛋疼啊。
第 1 个答案:
官方给的不好使,既然是symbol
那就把所有分开的文件导出名称都修改成一样的"Router"。
只要所有的module/xxx.ts,都修改成
export const Router: Array<RouteRecordRaw> = [...]
module/admin.ts
import { RouteRecordRaw } from 'vue-router'; export const Router: Array<RouteRecordRaw> = [ { path: "/", name: "home", meta: { title: "首页", }, component: () => import("@/views/dashboard/index.vue"), }, ]
base
const modules = import.meta.glob('./modules/**/*.ts', { eager: true }); Object.values(modules).forEach((val) => { const mod = val["Router"] const modList = Array.isArray(mod) ? [...mod] : [mod]; routeModuleList.push(...modList); });
如此就全部搞定。。
<div class="contson"> 这是文本 <p>aaaa</p> 这是文本2 <br> 这是文本3< ...