element-ui component不能拼接

问题遇到的现象和发生背景

element-ui配置动态路由的时候拼接component报错

问题相关代码,请勿粘贴截图
  param.forEach(item => {
    const str="";
    const menu = {
      path: item.path === '#' ? item.menu_id + '_key' : item.url,
      component: () => Promise.resolve(require("@/views/"+str).default),  //就这一行报错
      // hidden: true,
      children: [],
      name: 'menu_' + item.menu_id,
      meta: { title: item.menu_name, id: item.menu_id, roles: ['admin'] }
    }
    if (item.children) {
      generaMenu(menu.children, item.children)
    }
    routes.push(menu)
  });

运行结果及报错内容
  • @/api/account in ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/views/settings/components/cityschool.vue?vue&type=script&lang=js&, ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/views/user/forgotpwd.vue?vue&type=script&lang=js& and
    1 other
  • @/api/article in ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/views/settings/components/categorysetting.vue?vue&type=script&lang=js&

To install them, you can run: npm install --save @/api/account @/api/article

我的解答思路和尝试过的方法
我想要达到的结果

是的呢,你这样写试试

component: () => Promise.resolve(require(`@/views/${str}`).default)

@/api/account @/api/article这两个文件有吗