我有一个使用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,以备您在本地运行。
答案 0 :(得分:1)
在 this article 的帮助下,我找到了使用 babel 的解决方案。
将这些包安装为开发依赖项:
npm i --save-dev babel-jest @babel/core @babel/preset-env
在项目的根级别,创建一个 .babelrc
文件并添加以下内容:
{presets:["@babel/preset-env"]}
然后你可以在你的测试文件中使用 ES6 导入