前端的一只菜鸟 2021-05-22 22:13 采纳率: 0%
浏览 71

vue 动态注册路由 后为什么 webpake 重新命名失效?哪位大神解释下,有没有解决方案

mport Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)
/**
 *构造动态路由
 */
let routes=[]
let contextInfo=require.context('@/components/',true,/.vue$/i)
contextInfo.keys().forEach(fileName=>{
  // const pathConfig=contextInfo(fileName)
  const split = fileName.split('/')||['.vue']
  const splitStr = split[split.length-1]
  const name = splitStr.substring(0,splitStr.length-4)||'404'
  const path="/"+name
  routes.push({
    path,
    name,
    // component:() => import(`@/components/${name}`),
    component: () => import(/* webpackChunkName: "[request]" */ `@/components/${name}.vue`)
    // component: resolve=>resolve([/* webpackChunkName: "[request]" */ `@/components/${name}.vue`],resolve),
  })
  return
})

const router = new Router({
  routes
})

 

 

如果是单纯的使用下面的代码 就可以 直接的生成 HelloWorld.js

只要代码中含有 require.context('@/components/',true,/.vue$/i) 就不可以

 

const router=new Router({
  // mode:'history',
  routes:[
    {
      path:'/HelloWorld',
      name:'HelloWorld',
      component:() => import(/* webpackChunkName: "HelloWorld" */`@/components/HelloWorld`)
      // component:resolve()
    }
  ]
})
export default router

  • 写回答

1条回答 默认 最新

  • 前端-海鸟 2021-06-18 23:23
    关注

    你这不叫动态路由,你的routes.push会忽略webpackChunkName注释,动态路由使用router.addRoute方法

     

    评论

报告相同问题?

悬赏问题

  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助