4

I'm trying to run Jest and this error keeps preventing me from running any tests:

Error while loading config - 
You appear to be using a native ECMAScript module configuration file, which is only supported when running Babel asynchronously.

at loadCjsOrMjsDefault (node_modules/@babel/core/lib/config/files/module-types.js:59:13)
          at loadCjsOrMjsDefault.next (<anonymous>)
      at readConfigJS (node_modules/@babel/core/lib/config/files/configuration.js:174:47)
          at readConfigJS.next (<anonymous>)
      at Function.<anonymous> (node_modules/@babel/core/lib/gensync-utils/async.js:16:3)
      at evaluateSync (node_modules/gensync/index.js:251:28)
      at Function.sync (node_modules/gensync/index.js:89:14)
      at sync (node_modules/@babel/core/lib/gensync-utils/async.js:56:25)
      at sync (node_modules/gensync/index.js:182:19)

I'm using nodemon and sucrase to run my server, if that's relevant.

My babel config

module.exports = {
   presets: [
      [
         '@babel/preset-env',
         {
            targets: {
               node: 'current'
            }
         }
      ]
   ]
};

My package.json

{
  "type": "module",
  "scripts": {
    "dev": "nodemon src/server.js",
    "test": "jest"
  }
}
Leonardo Bezerra
  • 668
  • 1
  • 10
  • 20

1 Answers1

9

I think the problem is that your package.json says you are using ES6 modules, but your Babel config is using module.exports which is CommonJS (not ES6 modules).

I renamed my babel.config.js to babel.config.cjs and this fixed the problem. I guess you could also change module.exports to export default but I haven't tried this.

Malvineous
  • 25,144
  • 16
  • 116
  • 151
  • 5
    Wow, changing it from js to cjs really did work, thanks A LOT! Note: just changing it to export default didn't work. – Leonardo Bezerra May 15 '21 at 05:31
  • I also use `"type": "module"` in `package.json` Even though for me neither the `.cjs` or `.mjs` extensions worked, finally it got fixed by changing the file to `babel.config.json` and adding to `package.json` this config for jest: `"jest": { "modulePaths": [""] }` – Evgeniya Manolova Aug 30 '23 at 11:20