Files
vue-ts-example-2025/vite-plugins/00.vue-macros.ts
严浩 0678a88131
Some checks failed
CI/CD Pipeline / playwright (push) Successful in 2m0s
CI/CD Pipeline / build-and-deploy (push) Failing after 1m30s
f
2025-12-10 11:30:16 +08:00

33 lines
1.1 KiB
TypeScript

import vue from '@vitejs/plugin-vue';
import vueJsx from '@vitejs/plugin-vue-jsx';
import consola from 'consola';
import { getPascalCaseRouteName } from 'unplugin-vue-router';
import vueRouter from 'unplugin-vue-router/vite';
import type { PluginOption } from 'vite';
import VueMacros from 'vue-macros/vite';
export default [
VueMacros({
plugins: {
vue: vue({ include: [/\.vue$/, /\.md$/] }),
vueJsx: vueJsx(),
// https://uvr.esm.is/guide/configuration.html
// 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: true,
routesFolder: ['src/pages', 'src/pages-with-layout'],
extendRoute(route) {
consola.info(`route.name :>> `, route.name);
console.debug(`route.meta :>> `, route.meta);
console.debug(`route.path :>> `, route.path);
},
}),
},
}),
] satisfies PluginOption;