From 7d6474c92b055ba14b18bb7751a7a739edb433b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=A5=E6=B5=A9?= Date: Thu, 11 Dec 2025 00:05:04 +0800 Subject: [PATCH] refactor: update loadPlugin to use async/await and improve vueRouter configuration --- vite-plugins/00.vue-macros.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/vite-plugins/00.vue-macros.ts b/vite-plugins/00.vue-macros.ts index adb8406..545392b 100644 --- a/vite-plugins/00.vue-macros.ts +++ b/vite-plugins/00.vue-macros.ts @@ -1,11 +1,10 @@ import vue from '@vitejs/plugin-vue'; import vueJsx from '@vitejs/plugin-vue-jsx'; -import { getPascalCaseRouteName } from 'unplugin-vue-router'; import vueRouter from 'unplugin-vue-router/vite'; import type { ConfigEnv, PluginOption } from 'vite'; import VueMacros from 'vue-macros/vite'; -export function loadPlugin(_configEnv: ConfigEnv): PluginOption { +export async function loadPlugin(_configEnv: ConfigEnv): Promise { return [ VueMacros({ plugins: { @@ -16,11 +15,16 @@ export function loadPlugin(_configEnv: ConfigEnv): PluginOption { // https://github.com/posva/unplugin-vue-router // ⚠️ Vue must be placed after VueRouter() vueRouter: vueRouter({ - exclude: ['**/__*', '**/__*/**/*'], - extensions: ['.page.vue', '.page.md'], - getRouteName: (routeNode) => getPascalCaseRouteName(routeNode), - logs: false, routesFolder: 'src/pages', + extensions: ['.page.vue', '.page.md'], + exclude: ['**/__*', '**/__*/**/*'], + getRouteName: (await import('unplugin-vue-router')).getPascalCaseRouteName, + beforeWriteFiles(rootRoute) { + for (/* 深度优先遍历 */ const route of rootRoute.traverseDFS()) { + route.addToMeta({ _: route.fullPath }); + } + }, + logs: true, }), }, }),