60 lines
1.6 KiB
TypeScript
60 lines
1.6 KiB
TypeScript
import { createApp } from 'vue';
|
||
// import Wujie from 'wujie-vue3';
|
||
import dayjs from 'dayjs';
|
||
import customParseFormat from 'dayjs/plugin/customParseFormat';
|
||
import utc from 'dayjs/plugin/utc';
|
||
import timezone from 'dayjs/plugin/timezone';
|
||
import { VueQueryPlugin } from '@tanstack/vue-query';
|
||
|
||
import App from './App.vue';
|
||
import { setupRouter } from './router';
|
||
import { setupIcons } from './components/basic/icon';
|
||
import { setupStore } from '@/store';
|
||
import { setupI18n } from '@/locales';
|
||
import { setupAntd, setupAssets, setupGlobalMethods } from '@/plugins';
|
||
|
||
dayjs.extend(customParseFormat);
|
||
dayjs.extend(utc);
|
||
dayjs.extend(timezone);
|
||
|
||
const app = createApp(App);
|
||
|
||
app.use(VueQueryPlugin);
|
||
function setupPlugins() {
|
||
// 安装图标
|
||
setupIcons();
|
||
// 注册全局常用的ant-design-vue组件
|
||
setupAntd(app);
|
||
// 引入静态资源
|
||
setupAssets();
|
||
// 注册全局方法,如:app.config.globalProperties.$message = message
|
||
setupGlobalMethods(app);
|
||
}
|
||
|
||
async function setupApp() {
|
||
// app.use(Wujie);
|
||
|
||
// 设置时区为上海
|
||
dayjs.tz.setDefault('Asia/Shanghai');
|
||
|
||
// 通过动态import可生成单独的chunk,结合全局替换变量,可实现按需加载,且不会对代码打包体积造成影响
|
||
if (import.meta.env.VITE_MOCK_IN_PROD === 'true') {
|
||
// const { setupMock } = await import('../mocks/');
|
||
// // 启用 mock
|
||
// await setupMock();
|
||
}
|
||
|
||
setupStore(app);
|
||
// Multilingual configuration
|
||
// Asynchronous case: language files may be obtained from the server side
|
||
await setupI18n(app);
|
||
// 挂载路由
|
||
await setupRouter(app);
|
||
|
||
app.mount('#app');
|
||
}
|
||
|
||
setupPlugins();
|
||
|
||
setupApp();
|