通过路由去中心化可实现多人写作开发,不怕文件不停修改导致的冲突,modules中的文件可自动导入到index.js中
// 自动导入模块
const files = import.meta.globEager('./modules/**.js');
const modules = {}
for (const key in files) {modules[key.replace(/(\.\/modules\/|\.js)/g, '')] = files[key].default
}
Object.keys(modules).forEach(item => {routes.push(...modules[item]);
})
// 路由router/index.js
import { createRouter, createWebHistory } from "vue-router";
import { forLogin } from "@/utils/forLoign";
import Index from "@/layout/Index.vue";
import IndexNoMenus from "@/layout/IndexNoMenus.vue";const routes = [{path: "/index",name: "index",redirect: "/",component: Index,meta: {auth: true,keepAlive: false,title: "",},children: [{path: "/",name: "home",component: () => import("@/views/home.vue"),meta: {auth: true,keepAlive: false,title: "首页",},}],},{path: "/",name: "IndexNoMenus",redirect: "/",component: IndexNoMenus,meta: {auth: true,keepAlive: false,title: "",},children: [],},{path: "/login",name: "login",component: () => import("@/views/login.vue"),meta: {auth: false,keepAlive: false,title: "登录",},},{path: "/404",name: "not-found",component: () => import("@/views/404.vue"),meta: {auth: false,keepAlive: false,title: "not-found",},},{path: "/:pathMatch(.*)*",redirect: "/404",meta: {auth: false,keepAlive: false,title: "not-found",},},
];// 自动导入模块
const files = import.meta.globEager('./modules/**.js');
const modules = {}
for (const key in files) {modules[key.replace(/(\.\/modules\/|\.js)/g, '')] = files[key].default
}
Object.keys(modules).forEach(item => {routes.push(...modules[item]);
})// console.log('modules', files, modules, routes);const router = createRouter({history: createWebHistory("/h5/"),routes,
});// 登录拦截跳转
router.beforeEach((to, from, next) => {// * console.log(to)forLogin(to, from, next);
});export default router;