feat: ✨ 前端自动注册插件功能
This commit is contained in:
15
web/src/views/plugins/index.ts
Normal file
15
web/src/views/plugins/index.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
import { defineAsyncComponent, AsyncComponentLoader } from 'vue';
|
||||
|
||||
// 扫描插件目录并注册插件
|
||||
export const scanAndInstallPlugins = (app: any) => {
|
||||
const components = import.meta.glob('./**/*.vue');
|
||||
const pluginNames = new Set();
|
||||
// 遍历对象并注册异步组件
|
||||
for (const [key, value] of Object.entries(components)) {
|
||||
const name = key.slice(key.lastIndexOf('/') + 1, key.lastIndexOf('.'));
|
||||
app.component(name, defineAsyncComponent(value as AsyncComponentLoader));
|
||||
const pluginsName = key.match(/\/([^\/]*)\//)?.[1];
|
||||
pluginNames.add(pluginsName);
|
||||
}
|
||||
console.log('已发现插件:', Array.from(pluginNames));
|
||||
};
|
||||
Reference in New Issue
Block a user