main.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // #ifndef VUE3
  2. import Vue from 'vue'
  3. import App from '@/App'
  4. import store from '@/store'
  5. import appSettings from '@/core/config/app-settings'
  6. import mpShareMixin from '@/platform/mp-share'
  7. import Base64Codec from '@/core/infra/codec-base64'
  8. import { registerHttpInterceptors, createHttpFacade } from '@/core/http'
  9. import * as businessApi from '@/core/api'
  10. import { buildRuntimeToolkit } from '@/core/kit/runtime-toolkit'
  11. import { installGlobalShortcuts } from '@/features/global-shortcuts'
  12. import { createAppI18n } from '@/bootstrap/i18n-factory'
  13. // #ifdef H5
  14. import { runningInsideWeChat } from '@/platform/h5-wechat'
  15. // #endif
  16. Vue.mixin(mpShareMixin)
  17. Vue.config.productionTip = !!appSettings.debug
  18. const i18n = createAppI18n(Vue)
  19. const sink = Vue.prototype
  20. sink.$store = store
  21. sink.$base64 = new Base64Codec()
  22. // #ifdef H5
  23. sink.$jssdk = { isWechat: runningInsideWeChat }
  24. // #endif
  25. sink.$appKit = buildRuntimeToolkit(i18n)
  26. sink.$http = createHttpFacade()
  27. sink.$api = businessApi
  28. installGlobalShortcuts(sink)
  29. registerHttpInterceptors(i18n)
  30. App.mpType = 'app'
  31. const app = new Vue({
  32. i18n,
  33. store,
  34. ...App
  35. })
  36. app.$mount()
  37. // #endif
  38. // #ifdef VUE3
  39. import { bootstrapVue3App } from '@/bootstrap/launcher'
  40. export function createApp() {
  41. return bootstrapVue3App()
  42. }
  43. // #endif