【问题标题】:Error with ES6 Imports with Jest and Parcel使用 Jest 和 Parcel 导入 ES6 时出错
【发布时间】:2019-01-19 04:03:42
【问题描述】:

我有一个项目使用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 工作。

这里是link to the repo,以防你想在本地运行它。

【问题讨论】:

  • 你找到解决办法了吗?
  • 不,我最终回到require

标签: jestjs es6-modules parceljs


【解决方案1】:

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2020-12-19
    • 2020-09-23
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    • 2019-02-09
    • 2021-01-21
    相关资源
    最近更新 更多