Home > Enterprise >  Jest can't resolve module with parameter
Jest can't resolve module with parameter

Time:12-06

When I try to run my Jest tests I'm getting this error:

Cannot find module 'core-js/modules/es.array.flat#?./my-file-path' from 'src/some-of-my-files.js'

Require stack:

> 1 | import "core-js/modules/es.array.flat#?./my-file-path";
    | ^
  at Resolver.resolveModule (node_modules/jest-resolve/build/resolver.js:324:11)

Apparently Jest can't resolve this type of imports with parameters. Anyone has a solutions for this?

Here is my jest.config.js:

module.exports = {
  moduleNameMapper: {
    // some mappers
  },
  setupFiles: [
    // some files
  ],
  setupFilesAfterEnv: [
    // some files 
  ],
  transform: {
    "^. \\.(js|jsx)$": "babel-jest"
  },
  transformIgnorePatterns: [
    '/node_modules/(?!some-module-name)(.*)'
  ],
  testEnvironment: "jsdom",
  testPathIgnorePatterns: ["/test.js"]
};

I already tried some things but without success.

CodePudding user response:

As I don't know if there is a different solution, I ended up changing the way the import was being done to something like this:

import MyFileObj from "./my-file-path";    
import('core-js/modules/es.array.flat').then(m => m(MyFileObj));

If anyone has a better solution without having to change the way the import was being done, please share.

  • Related