import Vue from 'vue' import VueRouter, { RouteConfig } from 'vue-router' import Layout from '@/views/layout/index.vue' import components from '@/config/components' import { CompPage } from '@/config/components/type' import ComponentPage from '@/views/pages/component-page/index.vue' Vue.use(VueRouter) const routes: Array = [ { path: '/', name: 'Home', component: Layout, redirect: '/components/Logo', children: [ { path: 'changelog', component: () => import('@/views/pages/changelog/index.vue') }, ...buildRoutes(components) ] } // { // path: '/about', // name: 'About', // // route level code-splitting // // this generates a separate chunk (about.[hash].js) for this route // // which is lazy-loaded when the route is visited. // component: () => import(/* webpackChunkName: "about" */ '../views/About.vue') // } ] const router = new VueRouter({ // mode: 'history', base: process.env.BASE_URL, routes }) export default router function buildRoutes (components: CompPage[]) { const basePath = 'components/' return components.map(v => { return { path: `${basePath}${v.name}`, component: ComponentPage, props: () => ({ comp: v }) } }) }