fix(build): Fix Node.js ESM/cjs-module-lexer compatibility #2485
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.
Resolve #2484
Summary
This fixes Node.js ESM compatibility of
urql
's@urql/core
re-exports when the CommonJS module is used in ESM mode.In Node.js' ESM mode, any CommonJS module will be analyzed with
cjs-module-lexer
, which then ensures that the module actually contains the exports that an ESM module requests. When a re-export is used, a heuristic is applied by the module which is prone to failure. Prior to this change,urql
's reexport of@urql/core
wasn't detected correctly.I changed Rollup's CommonJS output until this was resolved and added a plugin to ensure future compliance.
Set of changes
cjs-module-lexer