webpack.base.config.js:
entry: {
app: './src/index.js'
},
output: {
path: config.build.assetsRoot, // '/'
publicPath: config.dev.assetsPublicPath, // 'static'
filename: '[name].bundle.js',
chunkFilename: '[name].chunk.js'
},
router(使用require.ensure()能正确拿到name):
const routes = [
{
path: '/',
component: r => {
require.ensure([], () => r(require('./view/index/index.vue')), 'index')
}
},
{
path: '/errorPage',
component: r => {
require.ensure([], () => r(require('./view/errorPage/errorPage.vue')), 'errorPage')
}
},
{
path: '/page',
component: r => {
require.ensure([], () => r(require('./view/page/page.vue')), 'page')
}
}
];
结果(正确拿到name):
但是!!!!!使用import:
const routes = [
{
path: '/',
component: () => import(/* webpackChunkName: "index" */ './view/index/index.vue')
},
{
path: '/errorPage',
component: () => import(/* webpackChunkName: "errorPage" */ './view/errorPage/errorPage.vue')
},
{
path: '/page',
component: () => import(/* webpackChunkName: "page" */ './view/page/page.vue')
}
];
结果不能拿到name:
有人说跟babel设置有关,但我尝试了也没作用:
.babelrc:
{
"env": {
"production": {
"presets": [
["env", {
"targets": {
"browsers": ["last 2 version", "ie 10"]
},
"modules": false,
"debug": true
}]
],
"plugins": [
"transform-runtime",
"transform-object-rest-spread",
"dynamic-import-webpack"
]
},
"development": {
"presets": [
["env", {
"targets": {
"chrome": 60
},
"modules": false,
"debug": true
}]
],
"plugins": [
"transform-object-rest-spread",
"dynamic-import-webpack"
]
}
}
}
向各位大佬求解
安装插件 babel-plugin-syntax-dynamic-import
.babelrc中修改:
参考链接