Replace module.require in scope hoisting #2875
Merged
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.
↪️ Pull Request
When scope hoisting, the check
if (typeof module !== "undefined" && module.require)
to determine whether the script is running on Node creates a non-working bundle, becausetypeof module
is replaced by a string and this if check also fails:parcel/packages/core/parcel-bundler/src/scope-hoisting/hoist.js
Lines 98 to 107 in 636bb50
This causes the asset to not be wrapped and so
module
isn't being declared (causingUncaught ReferenceError: module is not defined
)This replace
module.require
withnull
in the browser (as is done for server othermodule
properties).Closes #2841
🚨 Test instructions
Not sure how to add this as a test, because
module
is actually being declared as a global byrun
test function.REPL Link (Open console to see the error as well)
✔️ PR Todo