这种写法import("view/flex/flexDice") 报错 Unexpected token

以下代码报这个错误,求教
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (9:11)

// ...


const flex = () => import("view/flex/flexDice"); // 第九行 Unexpected token 
const animate = () => import("view/animate/animation");
const css3d = () => import("view/3d/css3d");
const d3 = () => import("view/d3/d3");
const vue2 = () => import("view/vue2/vue2");
const pwa = () => import("view/pwa/pwa");
const search = () => import("view/search/search");


let routes = [
                {path:'/flex',component:flex},
                {path:'/d3js',component:d3},
                {path:'/anmiation',component:animate},
                {path:'/3D',component:css3d},
                {path:'/vue2',component:vue2},
                {path:'/pwa',component:pwa},
                {path:'/search',component:search},
                // { path: '404', component:loadCmp('404/404') },
                // { path: '*', redirect: { path:'/404' } }
            ];

export default routes;
阅读 3.8k
4 个回答

const flex = r => require.ensure([], () => r(require(
'view/flex/flexDice')), 'flex');
我这样写没问题

const Search = r =>require.ensure([], () => r(require(
'../../pages/search.page')), 'search');
let router = [
 //搜索
 {
      path: '/classify/search',
      name: 'search',
      component : Search
 }
 ];
 export default router;

不知道 你的webpack 是什么版本,
新版这样的写法是可以支持的,我估计是你目录问题,用绝对目录试试

let Home = () => import('@/pages/Home');

你当前的 webpack 版本还不支持异步 import,用 require.ensure 代替。还有,如果用 webpack 打包的话,没有必要这样,文件直接都引入就好了,逻辑判断然后对应模块执行。你这样其实是多此一举。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题