import Vue from 'vue' import Router from 'vue-router' import { asyncRouterMap, constantRouterMap } from '@/config/router.config' // hack router push callback const originalPush = Router.prototype.push Router.prototype.push = function push (location, onResolve, onReject) { if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject) return originalPush.call(this, location).catch(err => err) } Vue.use(Router) const createRouter = () => new Router({ mode: 'history', routes: constantRouterMap }) const router = createRouter() // 定义一个resetRouter 方法,在退出登录后或token过期后 需要重新登录时,调用即可 export function resetRouter () { const newRouter = createRouter() router.matcher = newRouter.matcher } export default router