main.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import './styles/tailwind.css';
  2. import { createApp } from 'vue';
  3. import { setupNaiveDiscreteApi, setupNaive, setupDirectives } from '@/plugins';
  4. import App from './App.vue';
  5. import router, { setupRouter } from './router';
  6. import { setupStore } from '@/store';
  7. async function bootstrap() {
  8. const app = createApp(App);
  9. // 挂载状态管理
  10. setupStore(app);
  11. // 注册全局常用的 naive-ui 组件
  12. setupNaive(app);
  13. // 挂载 naive-ui 脱离上下文的 Api
  14. setupNaiveDiscreteApi();
  15. // 注册全局自定义组件
  16. // setupCustomComponents(app);
  17. // 注册全局自定义指令,如:v-permission权限指令
  18. setupDirectives(app);
  19. // 注册全局方法,如:app.config.globalProperties.$message = message
  20. // setupGlobalMethods(app);
  21. // 挂载路由
  22. setupRouter(app);
  23. // 路由准备就绪后挂载 APP 实例
  24. // https://router.vuejs.org/api/interfaces/router.html#isready
  25. await router.isReady();
  26. // https://www.naiveui.com/en-US/os-theme/docs/style-conflict#About-Tailwind's-Preflight-Style-Override
  27. const meta = document.createElement('meta');
  28. meta.name = 'naive-ui-style';
  29. document.head.appendChild(meta);
  30. app.mount('#app', true);
  31. }
  32. void bootstrap();