main.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // with polyfills
  2. import 'core-js/stable';
  3. import 'regenerator-runtime/runtime';
  4. import { createApp } from 'vue';
  5. // @ts-ignore
  6. import App from './App.vue';
  7. import { setupRouter } from './router';
  8. import { setupStore } from '@/store';
  9. import { setupI18n } from '@/locales';
  10. import { setupAntd, setupAssets, setupGlobalMethods, setupCustomComponents } from '@/plugins';
  11. if (process.env.NODE_ENV === 'production') {
  12. const { mockXHR } = require('./mock');
  13. mockXHR();
  14. }
  15. const app = createApp(App);
  16. function setupPlugins() {
  17. // 注册全局常用的ant-design-vue组件
  18. setupAntd(app);
  19. // 引入静态资源
  20. setupAssets();
  21. // 注册全局自定义组件,如:<svg-icon />
  22. setupCustomComponents(app);
  23. // 注册全局方法,如:app.config.globalProperties.$message = message
  24. setupGlobalMethods(app);
  25. }
  26. async function setupApp() {
  27. // 挂载vuex状态管理
  28. setupStore(app);
  29. // Multilingual configuration
  30. // Asynchronous case: language files may be obtained from the server side
  31. await setupI18n(app);
  32. // 挂载路由
  33. await setupRouter(app);
  34. app.mount('#app');
  35. }
  36. setupPlugins();
  37. setupApp();