可以在utils中可以创建一个主路由文件
// 主路由文件
export function importAllFn (r = {}) {
let routers = []
r.keys().forEach(item => {
routers.push(r(item).default)
})
// 确保 引入的路由不能为空, 有二维数组要扁平化
routers = routers.filter((re) => !!re).flat(2);
return routers
}
在路由api的主index.js中可以配置如下
import Vue from 'vue'
import Router from 'vue-router'
// 引入自动注册路由的方法
import { importAllFn } from '@/utils/importAll' // 引入上述的代码
// 使用插件
Vue.use(Router)
// require.context() 参数1: 哪个目录, 参数2: 是否遍历子目录,默认为true, 参数3: 定义的哪个文件后缀名
// 这里配置的是.routes.js后缀的路由,只需要在其他路由配置好,即可被引入
let routerList = importAllFn(require.context('./', true, /\.routes\.js$/))
const routes = [ ...routerList ]