I couldn't get rid of this SyntaxError: Cannot use import statement outside a module error no matter what I have tried and it got so frustrating. Is there anybody out here solved this issue? I have read a million stackoverflow and github issue threads. No clear solutions.
This is a React, Typescript, Webpack project. I am trying to test a module. But Jest won't transform the module to plain javascript somehow.
The error I get is
/Users/me/dev/Project/project/node_modules/variables/src/variables.js:12
    import './main.js';
    ^^^^^^
    SyntaxError: Cannot use import statement outside a module
      17 | 
      18 | */
    > 19 | import { GlobalVars } from 'variables'
         | ^
      20 | 
      21 | export const Vars = new GlobalVars()
      22 | 
What I have tried to solve this (and didn't work):
- Using - envsetup in- babel.config:- env.test.preset: ['@babel/plugin-transform-modules-commonjs']
- modifying - transformsetup in Jest configuration as- '^.+\\.jsx?$': 'babel-jest', '^.+\\.tsx?$': 'ts-jest'and all other possibilities around this.
- In Jest configuration, - testPathIgnorePatterns,- transformIgnorePatterns
- Using - .babel.config.jsinstead of- .babelrc.js
...and more.
I have this setup:
package.json
  "jest": {
    "preset": "ts-jest",
    "testEnvironment": "node"
  }
.babelrc.js
module.exports = {
  presets: [
    ['@babel/preset-env', { targets: { node: 'current' } }],
    '@babel/preset-react',
    '@babel/preset-typescript',
  ],
  plugins: [
    '@babel/plugin-transform-runtime',
    '@babel/proposal-class-properties',
    '@babel/transform-regenerator',
    '@babel/plugin-transform-template-literals',
    'react-hot-loader/babel',
  ],
}
variables.ts
import { GlobalVars } from 'variables'
export const Vars = new GlobalVars()
variables.spec.ts
import { Vars } from './variables.ts'
describe('Test The Package', () => {
  it('Should accept new variables', () => {
    Vars.newVariable = 'new variable'
    expect(Vars.newVariable).toEqual('new variable')
  })
})
Any idea on how to resolve this problem?
 
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    