【发布时间】:2019-06-28 07:16:48
【问题描述】:
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
export default new Router({
mode: 'history',
base: process.env.BASE_URL,
routes: [
{
path: '/home',
name: 'home',
component: () => import( /* webpackChunkName: "[request]" */
`@/views/Home.vue`)
},
{
path: '/about',
name: 'about',
component: () => import( /* webpackChunkName: "[request]" */
`@/views/About.vue`)
}
]
})
预计会以大块的形式输出 关于-vue.de9bf8b8.js app.cb7314dd.js chunk-vendors.cc2e3269.js 主页-vue.de9bf8b8.js.map
但实际结果是 [请求].de9bf8b8.js app.cb7314dd.js chunk-vendors.cc2e3269.js
当我省略 [request] 或尝试使用类似的功能时
function getComp(fileName)
{
console.log(‘func called’)
return ()=>import(/* webpackChunkName: “[request]” */ @/views/${fileName}.vue)
}
在这种方法中它可以工作,当我省略 [request] 时它也可以正常工作,但是如果没有正确的名称,我的包很难管理和调试
【问题讨论】:
-
您想要实现的目标有点令人困惑。您想将不同的模块捆绑在一起(如标题中所述),还是给它们起有意义的名称?
-
你有
/* webpackChunkName: "[request]" */,为什么你会惊讶于你得到一个名为[request]的块?那是expected behavior。 -
我想要具有有意义名称的块,但是添加名称会导致它们捆绑在一起
-
第一个代码块按预期工作。但是,既然您设法使其与第二个代码块中的函数和
[request]一起工作,那么现在有什么问题? -
在第一个中,我想要 2 个块,但将相应的名称作为文件名,而不是我得到的是单个块名称作为请求,这不是请求关键字的用途
标签: javascript vue.js webpack webpack-4 dynamic-import