小编Jac*_*ack的帖子

带有ES6模块的babel-jest

我很高兴使用节点8.6,并打开了实验性的ES6模块选项(--experimental-modules).这使我能够完美地为节点编写简单的ES2015代码,而无需使用babel.

问题是当我尝试使用jest创建一些测试时,它无法抱怨语法错误:"意外的令牌导入".

.babelrc配置如下:

{
  "env": {
    "test": {
      "presets": [
        ["env", {
          "targets": {
            "node": "8.6"
          }
        }]
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我的jest.config.js如下:

module.exports = {
  testMatch: ['/tests/**/*.js', '**/?(*.)test.js'],
}
Run Code Online (Sandbox Code Playgroud)

抛出的错误:

    /app/tests/integration/controller/data-provider/Credentials/CredentialsList.action.test.js:2
    import { Credentials, AdWordsCredentials } from '../../../../../imports/models/data-provider/Credentials.mjs';
    ^^^^^^

    SyntaxError: Unexpected token import

      at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/script_transformer.js:305:17)
          at Generator.next (<anonymous>)
          at Promise (<anonymous>)
Run Code Online (Sandbox Code Playgroud)

相关套餐:

  • babel-core@^6.26.0
  • jest@^21.2.1
  • babel-jest@^21.2.0
  • babel-preset-env@^1.6.0

任何帮助将不胜感激.谢谢 :)

更新:我尝试使用以下命令调用没有babel的jest,没有任何更改: node --experimental-modules node_modules/.bin/jest

babel ecmascript-6 jestjs babel-jest es6-modules

10
推荐指数
1
解决办法
1596
查看次数

标签 统计

babel ×1

babel-jest ×1

ecmascript-6 ×1

es6-modules ×1

jestjs ×1