|
|
- import App from './App'
-
- // #ifndef VUE3
- import Vue from 'vue'
-
- import './uni.promisify.adaptor'
-
- Vue.config.productionTip = false
-
- App.mpType = 'app'
-
- import store from '@/store/store'
-
- import './config'
- import './utils/index.js'
-
- import mixinConfigList from '@/mixins/configList.js'
-
- Vue.mixin(mixinConfigList)
-
- //组件注册
- import configPopup from '@/components/config/configPopup.vue'
- import navbar from '@/components/base/navbar.vue'
-
- Vue.component('configPopup',configPopup)
- Vue.component('navbar',navbar)
-
-
- // #ifdef H5
- import { fixH5Router } from '@/utils/h5-router-fix.js'
- import { fixUrlParams } from '@/utils/h5-fix.js'
-
- // 立即执行 H5 修复
- fixH5Router();
- fixUrlParams();
-
- // 设置 Vue 全局错误处理器
- Vue.config.errorHandler = function (err, vm, info) {
- // 忽略已知的 H5 兼容性错误
- if (err.message && (
- err.message.includes("Cannot read property 'meta'") ||
- err.message.includes('replaceState') ||
- err.message.includes('showTabBar') ||
- err.message.includes('History')
- )) {
- console.warn('H5兼容性错误已忽略:', err.message);
- return;
- }
- // 其他错误正常输出
- console.error('Vue Error:', err, vm, info);
- };
-
- import share from '@/utils/share.js'
- share()
- // #endif
-
-
- // H5 环境下的特殊处理
- // #ifdef H5
- Vue.config.silent = false;
-
- // 在创建 Vue 实例前添加额外的错误处理
- const originalConsoleError = console.error;
- console.error = function(...args) {
- // 过滤掉一些已知的 H5 兼容性错误
- const message = args.join(' ');
- if (message.includes("Cannot read property 'meta'") ||
- message.includes('replaceState') ||
- message.includes('showTabBar')) {
- console.warn('H5兼容性警告:', message);
- return;
- }
- originalConsoleError.apply(console, args);
- };
- // #endif
-
- try {
- const app = new Vue({
- ...App,
- store,
- })
- app.$mount()
- } catch(e) {
- console.error('Vue 应用启动失败:', e);
- // #ifdef H5
- // H5 环境下的降级处理
- setTimeout(() => {
- try {
- const app = new Vue({
- ...App,
- store,
- })
- app.$mount()
- } catch(retryError) {
- console.error('Vue 应用重试启动失败:', retryError);
- }
- }, 100);
- // #endif
- }
- // #endif
-
- // #ifdef VUE3
- import {
- createSSRApp
- } from 'vue'
- export function createApp() {
- const app = createSSRApp(App)
- return {
- app
- }
- }
- // #endif
|