From 4e3633d7eaa5a22d2517bb51b516f53442d0259d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=A5=E6=B5=A9?= Date: Thu, 26 Dec 2024 15:53:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=20vite-plugin-vue-me?= =?UTF-8?q?ta-layouts=20=E6=8F=92=E4=BB=B6=EF=BC=8C=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E8=B7=AF=E7=94=B1=E8=8F=9C=E5=8D=95=E9=A1=B9=E7=94=9F=E6=88=90?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + pnpm-lock.yaml | 15 +++++++++++ src/layouts/sakai-vue/AppMenu.vue | 41 +++++++++++++++---------------- src/plugins/router.ts | 3 ++- tsconfig.app.json | 1 + vite.config.plugins.ts | 7 ++++++ 6 files changed, 46 insertions(+), 22 deletions(-) diff --git a/package.json b/package.json index 5b0ddd5..6715b35 100644 --- a/package.json +++ b/package.json @@ -116,6 +116,7 @@ "vite-plugin-fake-server": "^2.1.4", "vite-plugin-vue-devtools": "^7.6.8", "vite-plugin-vue-layouts": "^0.11.0", + "vite-plugin-vue-meta-layouts": "^0.5.1", "vue-tsc": "^2.2.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6135738..ad7cef0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -255,6 +255,9 @@ importers: vite-plugin-vue-layouts: specifier: ^0.11.0 version: 0.11.0(vite@6.0.6(@types/node@22.10.2)(jiti@2.4.2)(less@4.2.1)(sass-embedded@1.83.0)(tsx@4.19.2)(yaml@2.6.1))(vue-router@4.5.0(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2)) + vite-plugin-vue-meta-layouts: + specifier: ^0.5.1 + version: 0.5.1(vite@6.0.6(@types/node@22.10.2)(jiti@2.4.2)(less@4.2.1)(sass-embedded@1.83.0)(tsx@4.19.2)(yaml@2.6.1))(vue-router@4.5.0(vue@3.5.13(typescript@5.7.2))) vue-tsc: specifier: ^2.2.0 version: 2.2.0(typescript@5.7.2) @@ -5082,6 +5085,12 @@ packages: vue: ^3.2.4 vue-router: ^4.0.11 + vite-plugin-vue-meta-layouts@0.5.1: + resolution: {integrity: sha512-iqy11j2oBIflxwBh4CCqbK3jl03hXO4RYYuj5/IvIe4m86zy7v2xwLOpyGZwP4RVRtJJTkXIiqTKQhR81ucVsg==} + peerDependencies: + vite: ^6.0.6 + vue-router: '>=4.0.14' + vite-plugin-webfont-dl@3.10.3: resolution: {integrity: sha512-9rRla7tYeDPRAApWWUdv0lGnU/rc2heyeH6EWj8PvGOuyLkbZo8mHo0QJpBBGKrwPyhadhN08iQhTKoFqQPIfA==} peerDependencies: @@ -10638,6 +10647,12 @@ snapshots: transitivePeerDependencies: - supports-color + vite-plugin-vue-meta-layouts@0.5.1(vite@6.0.6(@types/node@22.10.2)(jiti@2.4.2)(less@4.2.1)(sass-embedded@1.83.0)(tsx@4.19.2)(yaml@2.6.1))(vue-router@4.5.0(vue@3.5.13(typescript@5.7.2))): + dependencies: + local-pkg: 0.5.1 + vite: 6.0.6(@types/node@22.10.2)(jiti@2.4.2)(less@4.2.1)(sass-embedded@1.83.0)(tsx@4.19.2)(yaml@2.6.1) + vue-router: 4.5.0(vue@3.5.13(typescript@5.7.2)) + vite-plugin-webfont-dl@3.10.3(vite@6.0.6(@types/node@22.10.2)(jiti@2.4.2)(less@4.2.1)(sass-embedded@1.83.0)(tsx@4.19.2)(yaml@2.6.1)): dependencies: axios: 1.7.9 diff --git a/src/layouts/sakai-vue/AppMenu.vue b/src/layouts/sakai-vue/AppMenu.vue index 5a92f4a..39dda92 100644 --- a/src/layouts/sakai-vue/AppMenu.vue +++ b/src/layouts/sakai-vue/AppMenu.vue @@ -1,36 +1,35 @@ diff --git a/src/plugins/router.ts b/src/plugins/router.ts index cf424e0..b62df59 100644 --- a/src/plugins/router.ts +++ b/src/plugins/router.ts @@ -1,5 +1,6 @@ import { DataLoaderPlugin } from 'unplugin-vue-router/data-loaders'; -import { setupLayouts, createGetRoutes } from 'virtual:generated-layouts'; +import { createGetRoutes, setupLayouts } from 'virtual:meta-layouts'; +// import { setupLayouts, createGetRoutes } from 'virtual:generated-layouts'; import { createRouter, createWebHistory } from 'vue-router/auto'; import { handleHotUpdate, routes } from 'vue-router/auto-routes'; diff --git a/tsconfig.app.json b/tsconfig.app.json index 178d487..f844015 100644 --- a/tsconfig.app.json +++ b/tsconfig.app.json @@ -18,6 +18,7 @@ // "vite-plugin-pwa/client", "unplugin-vue-macros/macros-global", "unplugin-vue-router/client", + "vite-plugin-vue-meta-layouts/client", "unplugin-icons/types/vue", "@intlify/unplugin-vue-i18n/messages" ], diff --git a/vite.config.plugins.ts b/vite.config.plugins.ts index 99eee63..eb4693e 100644 --- a/vite.config.plugins.ts +++ b/vite.config.plugins.ts @@ -26,6 +26,7 @@ import cdnImport from 'vite-plugin-cdn-import'; import { vitePluginFakeServer } from 'vite-plugin-fake-server'; import VueDevTools from 'vite-plugin-vue-devtools'; import Layouts from 'vite-plugin-vue-layouts'; +import MetaLayouts from 'vite-plugin-vue-meta-layouts'; import { ViteWebfontDownload as WebfontDownload } from 'vite-plugin-webfont-dl'; export function Plugins() { @@ -51,6 +52,12 @@ export function Plugins() { // https://github.com/JohnCampionJr/vite-plugin-vue-layouts?tab=readme-ov-file#configuration Layouts({ pagesDirs: [], defaultLayout: 'sakai-vue/AppLayout' }), + // https://github.com/dishait/vite-plugin-vue-meta-layouts + MetaLayouts({ + /* skipTopLevelRouteLayout: true */ + defaultLayout: 'sakai-vue/AppLayout', + }), + // https://github.com/antfu/unocss // see uno.config.ts for config UnoCSS(),