3

我有一个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"
      ]
    }
  }
}

我知道 parcel 应该在没有配置的情况下支持 ES 模块,但我没有让 test import s 工作。

如果您想在本地运行它,这里是repo 的链接。

4

1 回答 1

2

在这篇文章的帮助下,我找到了一个使用 babel 的解决方案。

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

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

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

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

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

于 2021-01-19T19:07:03.500 回答