aboutsummaryrefslogtreecommitdiff
path: root/src/webpack/patchWebpack.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/webpack/patchWebpack.ts')
-rw-r--r--src/webpack/patchWebpack.ts14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/webpack/patchWebpack.ts b/src/webpack/patchWebpack.ts
index 679d481..f14ab0b 100644
--- a/src/webpack/patchWebpack.ts
+++ b/src/webpack/patchWebpack.ts
@@ -65,7 +65,7 @@ function patchPush() {
const originalMod = mod;
const patchedBy = new Set();
- modules[id] = function (module, exports, require) {
+ const factory = modules[id] = function (module, exports, require) {
try {
mod(module, exports, require);
} catch (err) {
@@ -118,10 +118,14 @@ function patchPush() {
logger.error("Error while firing callback for webpack chunk", err);
}
}
- };
+ } as any as { toString: () => string, original: any, (...args: any[]): void; };
- modules[id].toString = () => mod.toString();
- modules[id].original = originalMod;
+ // for some reason throws some error on which calling .toString() leads to infinite recursion
+ // when you force load all chunks???
+ try {
+ factory.toString = () => mod.toString();
+ factory.original = originalMod;
+ } catch { }
for (let i = 0; i < patches.length; i++) {
const patch = patches[i];
@@ -147,7 +151,7 @@ function patchPush() {
mod = (0, eval)(`// Webpack Module ${id} - Patched by ${[...patchedBy].join(", ")}\n${newCode}\n//# sourceURL=WebpackModule${id}`);
}
} catch (err) {
- logger.error(`Failed to apply patch ${replacement.match} of ${patch.plugin} to ${id}:\n`, err);
+ logger.error(`Patch by ${patch.plugin} errored (Module id is ${id}): ${replacement.match}\n`, err);
if (IS_DEV) {
const changeSize = code.length - lastCode.length;