import { DataLoaderPlugin } from 'unplugin-vue-router/data-loaders'; import { createRouter, createWebHistory } from 'vue-router'; import { handleHotUpdate, routes } from 'vue-router/auto-routes'; const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes, strict: true, scrollBehavior: () => ({ left: 0, top: 0 }), }); if (import.meta.hot) handleHotUpdate(router); if ($__DEV__) Object.assign(window, { router }); router.onError((error) => { console.debug('🚨 [router error]: ', error); }); export { router }; export function install({ app }: { app: import('vue').App }) { app // Register the plugin before the router .use(DataLoaderPlugin, { router }) // adding the router will trigger the initial navigation .use(router); } // ======================================================================== // =========================== Router Guards ============================== // ======================================================================== { // 警告:路由守卫的创建顺序会影响执行流程,请勿调整 createNProgressGuard(router); createLogGuard(router); Object.assign(window, { stack: createStackGuard(router) }); }