Vite 支持使用特殊的 import.meta.glob 函数从文件系统导入多个模块:
/ * 导入所有router
const metaRouters = import.meta.globEager("./modules/*.ts");
打印 metaRouters
处理数据 metaRouters
// * 处理路由表
export const routerArray: RouteRecordRaw[] = [];
Object.keys(metaRouters).forEach(item => {
Object.keys(metaRouters[item]).forEach((key: any) => {
routerArray.push(...metaRouters[item][key]);
});
});
处理后的路由打印
请注意
- 这只是一个 Vite 独有的功能而不是一个 Web 或 ES 标准
- 该 Glob 模式会被当成导入标识符:必须是相对路径(以
./
开头)或绝对路径(以/
开头,相对于项目根目录解析)。 - Glob 匹配是使用
fast-glob
来实现的 —— 阅读它的文档来查阅 支持的 Glob 模式。 - 你还需注意,glob 的导入不接受变量,你应直接传递字符串模式。
- glob 模式不能包含与包裹引号相同的引号字符串(其中包括
'
,"
,```),例如,如果你想实现'/Tom\'s files/**'
的效果,请使用"/Tom's files/**"
代替。