-
Notifications
You must be signed in to change notification settings - Fork 4.6k
Fix package side effects for esbuild #73795
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Size Change: 0 B Total Size: 2.58 MB ℹ️ View Unchanged
|
|
Flaky tests detected in f13b290. 🔍 Workflow run URL: https://github.com/WordPress/gutenberg/actions/runs/19967391327
|
Mamaduka
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you, @jsnajdr!
|
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message. To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
Spinoff from #73516 that fixes package side-effects for esbuild.
First, if esbuild sees an external import like
import { foo } from 'foo', sometimes the surrounding code that uses thefooimport is tree-shaked and eliminated. But can esbuild eliminate theimportstatement itself? Only if it knows for sure that the import has no side effects. If anonResolvehook handles an import as external, esbuild is not going to look up itspackage.jsonand we need to specifysideEffectsin theonResolvereturn value.Second, esbuild can't interpret bracket expansion (
{build,build-module}/{index.js,store/index.js}) in thesideEffectsvalues. Webpack can, but esbuild can't. It will interpret such a value asfalse, which is wrong. This PR expands thesideEffectsvalues into explicit lists. Esbuild understands the*and**wildcards, but nothing else.