feat: add an option to configure which file processed by esbuild
#1455
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Introduce new option in Jest
globals
calledprocessWithEsbuild
which accepts glob patterns to allow users to configure which files to be transformed byesbuild
.Different NPM packages have different ways of distributing ESM codes. Some can be processed with
esbuild
and Jest is happy with it, some Jest isn't happy. When Jest isn't happy with the output processed byesbuild
, we need to fall back to use TypeScript API, which almost guarantees 100% for Jest.Fixes #1413
Fixes #1437
Test plan
Green CI
Does this PR introduce a breaking change?
Previously, we always checked file extension
.mjs
and any files fromnode_modules
excludingtslib
to be processed withesbuild
. With the new optionprocessWithEsbuild
, now we limit to only.mjs
files. Files likelodash-es
default isn't processed byesbuild
. If you wish to useesbuild
to process such files, please configure in your Jest config likeOther information
N.A.