-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
Replace module.require in scope hoisting #2875
Conversation
I'm not even sure if that's what we want to do. The "normal" Is
|
Could you add a test? |
|
@devongovett You did what I mentioned in my last comment: parcel/packages/core/test-utils/src/utils.js Lines 230 to 238 in a50ddd5
|
…e/strip-type-module-attr * 'master' of github.com:parcel-bundler/parcel: Update deps & gitattributes (parcel-bundler#3006) Fix assigning to exports from inside a function in scope hoisting (parcel-bundler#2994) Define __esModule interop flag when requiring ES module from CommonJS (parcel-bundler#2993) Replace module.require in scope hoisting (parcel-bundler#2875) Clear scope cache before crawling (parcel-bundler#2986) Fix CI (parcel-bundler#2990) Shake exports with pure property assignments (parcel-bundler#2979) Update postcss.js (parcel-bundler#2922) Fail immediately if yarn.lock updates are needed (parcel-bundler#2945) # Conflicts: # packages/core/parcel-bundler/package.json # yarn.lock
…e/strip-type-module-attr * 'master' of github.com:parcel-bundler/parcel: fix source maps on coffeescript assets (parcel-bundler#3423) Fixes parcel-bundler#3133 by upgrading serialize-to-js from 1.1.1 to 3.0.0 (parcel-bundler#3451) Fix up misleading usage information (parcel-bundler#3158) bump chokidar to get a reload fix for linux (parcel-bundler#2878) Use uppercase for the first letter of the issue template (parcel-bundler#3192) Update dotenv-expand to allow overriding of falsy values (parcel-bundler#2971) Fixes 3076: HMR update breaks in webworker due to window (and location.reload) not existing in web worker context. (parcel-bundler#3078) Scope hoisting destructuring (parcel-bundler#2742) Create FUNDING.yml (parcel-bundler#3074) Added new info command (parcel-bundler#3068) Fix typo (parcel-bundler#3043) Update deps & gitattributes (parcel-bundler#3006) Fix assigning to exports from inside a function in scope hoisting (parcel-bundler#2994) Define __esModule interop flag when requiring ES module from CommonJS (parcel-bundler#2993) Replace module.require in scope hoisting (parcel-bundler#2875) Clear scope cache before crawling (parcel-bundler#2986) Fix CI (parcel-bundler#2990) Shake exports with pure property assignments (parcel-bundler#2979) Update postcss.js (parcel-bundler#2922) Fail immediately if yarn.lock updates are needed (parcel-bundler#2945)
↪️ 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