使用Jest和Parcel进行ES6导入时出错

时间:2018-08-12 02:04:36

标签: jestjs es6-modules parceljs

我有一个使用react-parcel-app作为模板的项目,并且我试图集成Jest,但是出现以下错误。

   Details:

/home/papaponmx/Projects/prime/src/actions/goals.spec.js:1
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import { addGoal } from './goals.mjs';

这就是我的.babelrc的样子。

{
  "presets": [
    [
      "env",
      {"modules": false},
      {
        "targets": {
          "browsers": [
            "last 2 versions"
          ]
        }
      }
    ],
    "react"
  ],
  "plugins": [
    "transform-class-properties",
    "transform-object-rest-spread"
  ],
  "env": {
    "testing": {
      "presets": ["es2015", "stage-1", "react" ],
      "plugins": [
        "lodash",
        "transform-runtime",
        "transform-es2015-modules-commonjs",
        "dynamic-import-node"
      ]
    }
  }
}

我了解到,该包裹原本应该在没有配置的情况下支持ES模块,但是我无法使测试导入工作。

这里是link to the repo,以备您在本地运行。

1 个答案:

答案 0 :(得分:1)

this article 的帮助下,我找到了使用 babel 的解决方案。

  1. 将这些包安装为开发依赖项:

    npm i --save-dev babel-jest @babel/core @babel/preset-env

  2. 在项目的根级别,创建一个 .babelrc 文件并添加以下内容:

    {presets:["@babel/preset-env"]}

然后你可以在你的测试文件中使用 ES6 导入