diff --git a/src/directives/index.ts b/src/directives/index.ts index 663c359..67eb312 100644 --- a/src/directives/index.ts +++ b/src/directives/index.ts @@ -1 +1,7 @@ -export * from "./permission" +import type { App } from "vue" +import { permission } from "./permission" + +/** 挂载自定义指令 */ +export function loadDirectives(app: App) { + app.directive("permission", permission) +} diff --git a/src/icons/index.ts b/src/icons/index.ts index 221b421..433e764 100644 --- a/src/icons/index.ts +++ b/src/icons/index.ts @@ -1,7 +1,7 @@ -import { createApp } from "vue" +import type { App } from "vue" import SvgIcon from "@/components/SvgIcon/index.vue" // Svg Component import "virtual:svg-icons-register" -export default (app: ReturnType) => { +export function loadSvg(app: App) { app.component("SvgIcon", SvgIcon) } diff --git a/src/main.ts b/src/main.ts index 802ec9b..2a6e0ba 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,14 +1,14 @@ +// core import { createApp } from "vue" -import type { Directive } from "vue" -import store from "./store" -import router from "./router" +import App from "@/App.vue" +import store from "@/store" +import router from "@/router" import "@/router/permission" -import App from "./App.vue" -import ElementPlus from "element-plus" -import loadSvg from "@/icons" -import * as directives from "@/directives" -import * as ElementPlusIconsVue from "@element-plus/icons-vue" - +// load +import { loadSvg } from "@/icons" +import { loadPlugins } from "@/plugins" +import { loadDirectives } from "@/directives" +// css import "uno.css" import "normalize.css" import "element-plus/dist/index.css" @@ -16,17 +16,12 @@ import "element-plus/theme-chalk/dark/css-vars.css" import "@/styles/index.scss" const app = createApp(App) -/** Element-Plus 组件完整引入 */ -app.use(ElementPlus) -/** 注册所有 Element-Plus Icon */ -for (const [key, component] of Object.entries(ElementPlusIconsVue)) { - app.component(key, component) -} + +/** 加载插件 */ +loadPlugins(app) /** 加载全局 SVG */ loadSvg(app) -/** 自定义指令 */ -Object.keys(directives).forEach((key) => { - app.directive(key, (directives as { [key: string]: Directive })[key]) -}) +/** 加载自定义指令 */ +loadDirectives(app) app.use(store).use(router).mount("#app") diff --git a/src/plugins/element-pus-icon/index.ts b/src/plugins/element-pus-icon/index.ts new file mode 100644 index 0000000..cef1598 --- /dev/null +++ b/src/plugins/element-pus-icon/index.ts @@ -0,0 +1,9 @@ +import type { App } from "vue" +import * as ElementPlusIconsVue from "@element-plus/icons-vue" + +export function loadElementPlusIcon(app: App) { + /** 注册所有 Element-Plus Icon */ + for (const [key, component] of Object.entries(ElementPlusIconsVue)) { + app.component(key, component) + } +} diff --git a/src/plugins/element-pus/index.ts b/src/plugins/element-pus/index.ts new file mode 100644 index 0000000..9b218f2 --- /dev/null +++ b/src/plugins/element-pus/index.ts @@ -0,0 +1,7 @@ +import type { App } from "vue" +import ElementPlus from "element-plus" + +export function loadElementPlus(app: App) { + /** Element-Plus 组件完整引入 */ + app.use(ElementPlus) +} diff --git a/src/plugins/index.ts b/src/plugins/index.ts new file mode 100644 index 0000000..1b7df72 --- /dev/null +++ b/src/plugins/index.ts @@ -0,0 +1,8 @@ +import type { App } from "vue" +import { loadElementPlus } from "./element-pus" +import { loadElementPlusIcon } from "./element-pus-icon" + +export function loadPlugins(app: App) { + loadElementPlus(app) + loadElementPlusIcon(app) +}