vue动态加载路由后台获取菜单数据拼装成路由格式无法加载模块

vue动态加载路由,后台获取菜单数据在component中路径拼接就找不模块,写死成一个字符串就可以。

/**
 * 后台查询的菜单数据拼装成路由格式的数据
 * @param routes
 * @param data
 */
export function generaMenu(routes, data) {
  data.forEach(item => {
    const url = '@/views/system/User'
    const menu = {
      path: item.path === '#' ? item.name : item.path,
      // 这样不行
      // component: item.path === '#' ? Layout : () => import(url),
      // 而下面这样就可以
      component: item.path === '#' ? Layout : () => import('@/views/system/User'),
      name: item.name,
      meta: item.meta,
      children: []
    }
    if (item.children !== null) {
      generaMenu(menu.children, item.children)
    }
    routes.push(menu)
  })
}

问题已解决

component: item.path === '#' ? Layout : (resolve) => require([`@/views${item.path}`], resolve),

但是还有一个问题

为什么
``() => import(@/views${item.pat}`)

这样不行

使用的webpack版本 不支持动态加载嘛