diff --git a/src/main.ts b/src/main.ts index 9ec967b..9b2109d 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,19 +1,6 @@ import './styles'; import App from './App.vue'; +import { setupPlugins } from './plugins'; -async function init() { - const app = createApp(App); - { - // https://github.com/antfu-collective/vitesse/blob/47618e72dfba76c77b9b85b94784d739e35c492b/src/modules/README.md - type UserPluginContext = { app: import('vue').App }; - type UserPlugin = (ctx: UserPluginContext) => void; - Object.values(import.meta.glob<{ install: UserPlugin }>('./plugins/*.ts', { eager: true })).forEach((i) => - i.install?.({ app }), - ); - } - - app.mount('#app'); -} - -init(); +setupPlugins(createApp(App)).mount('#app'); diff --git a/src/plugins/_.ts b/src/plugins/_.ts index 6691061..2993e6d 100644 --- a/src/plugins/_.ts +++ b/src/plugins/_.ts @@ -16,4 +16,17 @@ export function install({ app }: { app: import('vue').App }) { // 2. 显示全局错误提示 // 3. 进行错误分析和处理 }; + + if (import.meta.env.MODE === 'development' && '1' === ('2' as never)) { + // TODO: https://github.com/hu3dao/vite-plugin-debug/ + // https://eruda.liriliri.io/zh/docs/#快速上手 + import('eruda').then(({ default: eruda }) => { + eruda.init({ + defaults: { + transparency: 0.9, + }, + }); + /* eruda.show(); */ + }); + } } diff --git a/src/plugins/index.ts b/src/plugins/index.ts index 881de93..6c67653 100644 --- a/src/plugins/index.ts +++ b/src/plugins/index.ts @@ -1,14 +1,17 @@ -export function install() { - if (import.meta.env.MODE === 'development' && '1' === ('2' as never)) { - // TODO: https://github.com/hu3dao/vite-plugin-debug/ - // https://eruda.liriliri.io/zh/docs/#快速上手 - import('eruda').then(({ default: eruda }) => { - eruda.init({ - defaults: { - transparency: 0.9, - }, - }); - /* eruda.show(); */ - }); +// https://github.com/antfu-collective/vitesse/blob/47618e72dfba76c77b9b85b94784d739e35c492b/src/modules/README.md +type UserPluginContext = { app: import('vue').App }; +type UserPlugin = (ctx: UserPluginContext) => void; + +export function setupPlugins(app: import('vue').App) { + console.group('Setup Plugins'); + const modules = import.meta.glob<{ install: UserPlugin }>('./*.ts', { eager: true }); + 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'); + } } + console.groupEnd(); + return app; }