2017-12-27 999 views
0

所有babel模块/插件都在最新版本的babel v6上。 Mocha已在v4.0.1上。使用摩卡运行时,仍然会收到语法错误,导入为babel-plugin-syntax-dynamic-import动态导入

设置:

// .babelrc 
{ 
    presets: [ 
     "stage-3", 
     [ 
     "env", 
     { 
      "targets": { 
       "browsers": [ 
       "last 2 versions" 
       ], 
       "node": "current" 
      } 
     } 
     ] 
     "react" 
    ], 
    plugins: ["transform-runtime", "syntax-dynamic-import"] 
} 


// mocha.opts 
--recursive 
--reporter progress 
--require babel-polyfill 
--require babel-register 
--timeout 20000 

所以,当我跑我的测试套件我仍然得到: error stack trace

我不得不想像它与babel-register和syntax-dynamic-import没有正确协同工作。因为当我在webpack中将它与babel-loader一起使用时,我在transpile上没有得到任何语法错误。

+0

想通了。我转移到动态导入节点。我以前曾尝试过这种方式,但仍然失败。它仍然失败的原因是因为有些东西被缓存在某处。可能来自摩卡或巴贝尔。所以如果我改变了文件或测试'dynamic-import-node'开始按预期工作。 –

+0

不知道为什么'syntax-dynamic-import'不能和babel-register一起工作。 –

回答

1

这个答案从萨蒂亚吉特Sahoo babeljs松弛茅塞顿开对我来说:

syntax-dynamic-import将只允许在巴比伦的语法,这意味着它可以巴比伦解析代码没有语法错误。代码import(...)仍然存在,哪个节点不理解,您仍然需要传输它。 dynamic-import-node将该节点能够理解的import(...)转换为require。在客户端,由于Webpack理解语法并进行捆绑,因此不需要传输步骤。

相关问题