Jest中的动态导入产生:SyntaxError:意外的令牌导入

时间:2016-12-16 21:57:52

标签: javascript reactjs babeljs jestjs

无法弄清楚如何解决这些错误,Jest抱怨这些动态导入:

const importModules = Promise.all([
      import('containers/HomePage/reducer'),
      import('containers/HomePage/sagas'),
      import('containers/HomePage'),
    ]);

错误讯息:

F:\react-boilerplate\app\store.js:49
      import('./reducers').then(function (reducerModule) {
      ^^^^^^
SyntaxError: Unexpected token import

您可以在此处找到所有详细信息:https://github.com/mxstbr/react-boilerplate/pull/1358

2 个答案:

答案 0 :(得分:4)

安装babel-plugin-dynamic-import-node解决了我们的问题。此外,请确保babylonbabel依赖项)至少为6.12.0

另外,Travis构建存在问题,因为Travis缓存了node_modules和旧版babylon

$ npm ls babylon
react-boilerplate@3.3.0 /home/travis/build/mxstbr/react-boilerplate
├─┬ babel-core@6.21.0
│ └── babylon@6.11.1
├─┬ babel-eslint@7.1.1
│ └── babylon@6.14.1 
├─┬ jest-cli@18.0.0
│ └─┬ istanbul-lib-instrument@1.3.0
│   └── babylon@6.14.1 

,因此我们不得不使用以下内容关闭缓存:cache: false

答案 1 :(得分:0)

看起来jest无法使用test文件中.babelrc的babel设置编译您的文件。您需要为prodtest

设置相同的设置