From 3292800f0d7319945d4e07a56dafd24bb54773b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=A5=E6=B5=A9?= Date: Wed, 8 Jan 2025 10:17:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E9=80=BB=E8=BE=91=EF=BC=8C=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=AE=89=E8=A3=85=E6=A8=A1=E5=9D=97=E5=B9=B6?= =?UTF-8?q?=E5=A2=9E=E5=BC=BA=E8=B0=83=E8=AF=95=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.ts | 3 ++- src/plugins/index.ts | 17 ++++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/main.ts b/src/main.ts index 9b2109d..2359d43 100644 --- a/src/main.ts +++ b/src/main.ts @@ -3,4 +3,5 @@ import './styles'; import App from './App.vue'; import { setupPlugins } from './plugins'; -setupPlugins(createApp(App)).mount('#app'); +const autoInstallModules = import.meta.glob('./plugins/*.ts', { eager: true }); +setupPlugins(createApp(App), autoInstallModules).mount('#app'); diff --git a/src/plugins/index.ts b/src/plugins/index.ts index 6c67653..b4b1e47 100644 --- a/src/plugins/index.ts +++ b/src/plugins/index.ts @@ -1,15 +1,18 @@ // https://github.com/antfu-collective/vitesse/blob/47618e72dfba76c77b9b85b94784d739e35c492b/src/modules/README.md type UserPluginContext = { app: import('vue').App }; type UserPlugin = (ctx: UserPluginContext) => void; +type AutoInstallModule = { install?: UserPlugin; [K: string]: unknown }; -export function setupPlugins(app: import('vue').App) { - console.group('Setup Plugins'); - const modules = import.meta.glob<{ install: UserPlugin }>('./*.ts', { eager: true }); +export function setupPlugins(app: import('vue').App, modules: AutoInstallModule | Record) { + console.group('šŸ”Œ Plugins'); for (const path in modules) { - modules[path].install?.({ app }); - if (modules[path].install !== undefined) { - const moduleName = path.replace(/\.\/(.*)\.ts/, '$1'); - console.debug(`%cāœ” ${moduleName}`, 'color: #07a'); + const module = modules[path] as AutoInstallModule; + if (module.install) { + module.install({ app }); + console.debug(`%cāœ” ${path}`, 'color: #07a'); + } else { + if (typeof module.setupPlugins === 'function') continue; + console.warn(`%c✘ ${path} has no install function`, 'color: #f50'); } } console.groupEnd();