Maybe you may help me? I try to configure jest to use babel@7 So I have:
"jest": "^23.4.1", "@babel/core": "^7.0.0-beta.54", "babel-7-jest": "^21.3.3", "babel-jest": "^20.0.3",
And jest config inside package.json
"jest": { "transform": { "^.+\\.js$": "babel-7-jest", },
And got
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string
But if I use
"jest": { "transform": { "^.+\\.js$": "babel-jest", },
I got
Requires Babel "^7.0.0-0", but was loaded with "6.26.3". If you are sure you have a compatible version of @babel/core, it is likely that something in your build process is loading the wrong version. Inspect the stack trace of this error to look for the first entry that doesn't mention "@babel/core" or "babel-core" to see what is calling Babel.
babel config: https://gist.github.com/SilentImp/1506e9c26d16d9839a4469c6f3ae5c4d
Maybe you have some ideas?
I believe I have found a working solution (no thanks to the Jest team providing broken documentation and evading GitHub issues around this issue).
You need the following in your devDependencies
section of your package.json
:
"devDependencies": { "@babel/core": "^7.0.0-beta.54", "@babel/preset-env": "^7.0.0-beta.54", "babel-core": "^7.0.0-bridge.0", "babel-jest": "^23.4.0", "bili": "^3.1.2", "jest": "^23.4.1", "regenerator-runtime": "^0.12.0" }
The following in your .babelrc
:
{ "presets": [ [ "@babel/preset-env", { "debug": false, "targets": { "browsers": [ "last 3 versions" ] } } ] ] }
In my particular project I did not need to use the Jest config so I deleted my empty jest.config.js
file.
Key points:
babel-7-jest
as this is deprecated as there is now official support for it.@babel/xyz
packages going forward - the babel-core
bridge one I have installed is the "official" way to use latest Babel 7. I imagine this need will be removed at some point in the future as everything migrates to Babel 7.import/export
and no longer need the antiquated require()
.Edit:
If you want to have a more detailed log of passing/failing tests then put this in your jest.config.js
:
module.exports = { "verbose": true }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With