import Vue from 'vue'; import App from './app.vue'; import {createRouter} from './router'; import {createStore} from './store'; import 'filters'; import 'directives'; import titleMixin from './mixins/title'; import downloadMixin from './mixins/download'; import pluginCore from './plugins/core'; import lazyload from 'vue-lazyload'; import reportError from 'report-error'; import dayjs from 'dayjs'; import 'dayjs/locale/zh-cn'; import relativeTime from 'dayjs/plugin/relativeTime'; Vue.use(lazyload, { preLoad: 3, loading: 'data:image/gif;base64,R0lGODlhAQABAJEAAAAAAP///93d3f///yH5BAEAAAMALAAAAAABAAEAAAICVAEAOw==', error: 'data:image/gif;base64,R0lGODlhAQABAJEAAAAAAP///93d3f///yH5BAEAAAMALAAAAAABAAEAAAICVAEAOw==', }); Vue.use(pluginCore); Vue.mixin(titleMixin); Vue.mixin(downloadMixin); dayjs.locale('zh-cn'); dayjs.extend(relativeTime); export function createApp(context, state = {}) { const router = createRouter(); const store = createStore(context, state); const app = new Vue({ router, store, errorCaptured(error) { reportError(context, 'server')(error); return false; }, render: h => h(App) }); return {app, router, store}; }