-
Notifications
You must be signed in to change notification settings - Fork 469
Description
Is it possible to import packages that are written in ESM? For example in my TypeScript project I have a dependency to react-dates@next which is written in ECMAScript module syntax (import / export). In my webpack build everything works fine because webpack understands natively ESM. But in my Jest tests I get SyntaxError: Unexpected token import in
/my/project/node_modules/date-fns/esm/addDays/index.js:1
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import toDate from '../toDate/index.js'
One solution would be to include babel-jest as it's written in the official Jest docs and modify my config to
"transform": {
"^.+\\.js$": "babel-jest",
"^.+\\.tsx?$": "ts-jest"
},This works in my case but I don't want to clutter my project with Babel stuff just for tests. Additionally the tests are getting really slow and Babel complains with
[BABEL] Note: The code generator has deoptimised the styling of "/Users/me/development/my-project/node_modules/ty
pescript/lib/typescript.js" as it exceeds the max of "500KB".
So it seems that Babel is transpiling *all my dependencies.
Is it possible to achieve the same with ts-jest? I also tried to modify my tsconfig.json to let TypeScript compile to "module": "commonjs" and set "transformIgnorePatterns": ["<rootDir>/node_modules/react-dates"] but this doesn't work. It seems that the source files from date-fns doesn't get passed to ts-jest. I could provide a small test project if you want.