Files
Docker/WebVue/src/main.ts
T
2026-09-22 23:09:11 +08:00

58 lines
1.3 KiB
TypeScript

import { createApp } from "vue";
import App from "./App.vue";
import { setupStore } from "./store";
//使用了Top await
import { setupRouter } from "./router";
import { setupI18n } from "./locales";
import {
setupAntd,
setupAssets,
setupCustomComponents,
setupVuePhoto,
} from "./plugins";
const app = createApp(App);
function setupPlugins() {
// 注册全局常用的ant-design-vue组件
setupAntd(app);
// 注册全局常用的VuePhoto组件
setupVuePhoto(app);
// 引入静态资源
setupAssets();
// 注册全局自定义组件,如:<svg-icon />
setupCustomComponents(app);
}
async function setupApp() {
// 挂载pinia状态管理
setupStore(app);
// 挂载路由
await setupRouter(app);
// 初始化 i18n
await setupI18n(app);
setupShareImage();
app.mount("#app");
}
/**
* 分享卡片(微信收藏/转发等)的缩略图要求绝对地址,相对路径会被忽略,
* 这里按当前域名把 index.html 里的 og:image 补全。
*/
function setupShareImage() {
const meta = document.querySelector('meta[property="og:image"]');
const content = meta?.getAttribute("content");
if (meta && content && !/^https?:\/\//i.test(content)) {
meta.setAttribute("content", new URL(content, location.origin).href);
}
}
setupPlugins();
setupApp();