使用mocha运行时,仍然会收到使用babel-plugin-syntax-dynamic-import进行动态导入的语法错误

时间:2017-12-27 19:11:48

标签: node.js webpack mocha babeljs

所有babel模块/插件都在最新版本的babel v6上。 摩卡在v4.0.1上。

设置:

// .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时,我不会在transile上遇到任何语法错误。

1 个答案:

答案 0 :(得分:4)

Satyajit Sahoo对babeljs松弛的回答为我解决了问题:

  

syntax-dynamic-import只会启用babylon中的语法,这意味着它可以解析代码而不会出现语法错误。代码import(...)仍然存在,哪个节点无法理解,您仍然需要对其进行转换。 dynamic-import-node将节点理解的import(...)转换为require。在客户端上,由于Webpack了解语法并进行捆绑,因此不必进行转换步骤。