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.
#729 happens because webpack's Top Level Await implementation allows for modules to be loaded in parallel. This breaks the assumption that a global
__webpack_require__.$Refresh$
, which contains information about the currently loading module, can be managed as a stack like data structure.This change borrows the concept from webpack's own
webpack/runtime/hot module replacement
chunk that each module can receive its own copy of a "proxy"__webpack_require__
. This proxy delegates all of its behavior to the global__webpack_require__
except for access to the$Refresh$
property. In practice this guarantees that__webpack_require__.$Refresh$
is isolated to the currently loading module, avoiding any chance of a race condition caused by parallel loading.This has been found to solve the motivating issue in a 3000+ file (proprietary) Typescript/webpack build chain monorepo.