feat(gatsby): add polyfill chunk to gatsby #24799
Closed
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.
Description
Creates a separate polyfill chunk that contains all legacy browser modules. We reduce around 40kb of javascript for Modern browsers.
Gatsby-legacy-polyfills
A package that contains all polyfills necessary for legacy browsers. It get compiled by microbundle so everything is compressed and everything is inside the bundle (no externals). This gives us the opportunity to improve user's code even more. (That's for a next PR)
Babel-preset-gatsby
Make sure that all modules are excluded by babel-preset-env so we do not add these unnecessarily
Upgrade to core-js 3
I've also upgraded to core-js 3 as core-js 2 was old. The reason why we didn't do it sooner is because core-js 3 compact table includes more polyfills than core-js 2. Now this point is moot as we exclude most of them.