SyntaxError: Cannot use import statement outside a module { AXIOS }

6.4k Views Asked by At

Hello I changed my code from fetch to axios and when I run my tests I get this problem... Can anyone help me with that ?


SyntaxError: Cannot use import statement outside a module

> 1 | import axios from "axios";

Jest encountered an unexpected token

This usually means that you are trying to import a file which Jest cannot parse, e.g. it's not plain JavaScript.

By default, if Jest sees a Babel config, it will use that to transform your files, ignoring "node_modules".

Here's what you can do:
 • If you are trying to use ECMAScript Modules, see https://jestjs.io/docs/en/ecmascript-modules for how to enable it.
 • To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
 • If you need a custom transformation specify a "transform" option in your config.
 • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.

You'll find more details and examples of these config options in the docs:
3

There are 3 best solutions below

0
Andre Carvalho On BEST ANSWER

This issue occurred after axios update from 0.27.2 to 1.0.0. There is an opened issue, so probably this is going to be fixed soon. Meanwhile they're working on that, you can temporary fix it by setting up transformIgnorePatterns in jest config:

transformIgnorePatterns = ["node_modules/(?!axios)/"]
1
eXception On

For me helped the following jest.config.js setup:

transformIgnorePattern: [
 '<rootDir>/node_modules/(?!axios)/'
]

alongside with

moduleNameMapper: {
  '^axios$': require.resolve('axios'),
}
0
nll004 On

I tried what Andre suggested but it didn't work for me. After searching the issue comments I tried replacing the test script in my package.json with

"scripts": {
    "test": "react-scripts test --transformIgnorePatterns\"node_modules/(?!axios)/\""
}

and it worked perfectly. Hope this helps! It was a frustrating issue.

Thank you Andre for providing the link to the github issue.