From 6530bbd2b5513e262f43cb8be9f93d5c9b590940 Mon Sep 17 00:00:00 2001 From: "alexander.akait" Date: Wed, 10 Jan 2024 18:34:05 +0300 Subject: [PATCH 1/3] fix: add `ChunkLoadError` name to chunk loading error --- src/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/index.js b/src/index.js index c23cc837..24544ac0 100644 --- a/src/index.js +++ b/src/index.js @@ -879,6 +879,7 @@ class MiniCssExtractPlugin { "var errorType = event && (event.type === 'load' ? 'missing' : event.type);", "var realHref = event && event.target && event.target.href || fullhref;", 'var err = new Error("Loading CSS chunk " + chunkId + " failed.\\n(" + realHref + ")");', + 'err.name = "ChunkLoadError";', 'err.code = "CSS_CHUNK_LOAD_FAILED";', "err.type = errorType;", "err.request = realHref;", From d352d915790cb047ade7219d80198e31762ca7e0 Mon Sep 17 00:00:00 2001 From: "alexander.akait" Date: Wed, 10 Jan 2024 18:42:25 +0300 Subject: [PATCH 2/3] fix: improve --- src/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/index.js b/src/index.js index 24544ac0..d9117f97 100644 --- a/src/index.js +++ b/src/index.js @@ -876,9 +876,9 @@ class MiniCssExtractPlugin { Template.indent(["resolve();"]), "} else {", Template.indent([ - "var errorType = event && (event.type === 'load' ? 'missing' : event.type);", + "var errorType = event && event.type;", "var realHref = event && event.target && event.target.href || fullhref;", - 'var err = new Error("Loading CSS chunk " + chunkId + " failed.\\n(" + realHref + ")");', + 'var err = new Error("Loading CSS chunk " + chunkId + " failed.\\n(" + errorType + ": " + realHref + ")");', 'err.name = "ChunkLoadError";', 'err.code = "CSS_CHUNK_LOAD_FAILED";', "err.type = errorType;", From 9ae167b9289ffcc9b192b57c175029bc7f585110 Mon Sep 17 00:00:00 2001 From: "alexander.akait" Date: Wed, 10 Jan 2024 18:59:08 +0300 Subject: [PATCH 3/3] test: update --- src/index.js | 1 + ...55be87a9aa9996fc905c.css => 0.7f0e5fa686a9bb728e64.css} | 0 .../{55be87a9aa9996fc905c.css => 7f0e5fa686a9bb728e64.css} | 0 .../expected/webpack-5-importModule/main.js | 7 ++++--- ...4a73d63c8c2357971fc6.css => 0.100253bb7576627988e6.css} | 0 .../{4a73d63c8c2357971fc6.css => 100253bb7576627988e6.css} | 0 .../chunkFilename-fullhash/expected/webpack-5/main.js | 7 ++++--- test/cases/hmr/expected/main.js | 5 +++-- test/cases/insert-function/expected/main.js | 5 +++-- test/cases/insert-string/expected/main.js | 5 +++-- test/cases/insert-undefined/expected/main.js | 5 +++-- 11 files changed, 21 insertions(+), 14 deletions(-) rename test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/{0.55be87a9aa9996fc905c.css => 0.7f0e5fa686a9bb728e64.css} (100%) rename test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/{55be87a9aa9996fc905c.css => 7f0e5fa686a9bb728e64.css} (100%) rename test/cases/chunkFilename-fullhash/expected/webpack-5/{0.4a73d63c8c2357971fc6.css => 0.100253bb7576627988e6.css} (100%) rename test/cases/chunkFilename-fullhash/expected/webpack-5/{4a73d63c8c2357971fc6.css => 100253bb7576627988e6.css} (100%) diff --git a/src/index.js b/src/index.js index d9117f97..e47612f1 100644 --- a/src/index.js +++ b/src/index.js @@ -880,6 +880,7 @@ class MiniCssExtractPlugin { "var realHref = event && event.target && event.target.href || fullhref;", 'var err = new Error("Loading CSS chunk " + chunkId + " failed.\\n(" + errorType + ": " + realHref + ")");', 'err.name = "ChunkLoadError";', + // TODO remove `code` in the future major release to align with webpack 'err.code = "CSS_CHUNK_LOAD_FAILED";', "err.type = errorType;", "err.request = realHref;", diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.55be87a9aa9996fc905c.css b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.7f0e5fa686a9bb728e64.css similarity index 100% rename from test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.55be87a9aa9996fc905c.css rename to test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.7f0e5fa686a9bb728e64.css diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/55be87a9aa9996fc905c.css b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/7f0e5fa686a9bb728e64.css similarity index 100% rename from test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/55be87a9aa9996fc905c.css rename to test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/7f0e5fa686a9bb728e64.css diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js index 39c43626..42f7a5b2 100644 --- a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js +++ b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js @@ -73,7 +73,7 @@ __webpack_require__.r(__webpack_exports__); /******/ /******/ /* webpack/runtime/getFullHash */ /******/ (() => { -/******/ __webpack_require__.h = () => ("55be87a9aa9996fc905c") +/******/ __webpack_require__.h = () => ("7f0e5fa686a9bb728e64") /******/ })(); /******/ /******/ /* webpack/runtime/global */ @@ -187,9 +187,10 @@ __webpack_require__.r(__webpack_exports__); /******/ if (event.type === 'load') { /******/ resolve(); /******/ } else { -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var errorType = event && event.type; /******/ var realHref = event && event.target && event.target.href || fullhref; -/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + realHref + ")"); +/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + errorType + ": " + realHref + ")"); +/******/ err.name = "ChunkLoadError"; /******/ err.code = "CSS_CHUNK_LOAD_FAILED"; /******/ err.type = errorType; /******/ err.request = realHref; diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5/0.4a73d63c8c2357971fc6.css b/test/cases/chunkFilename-fullhash/expected/webpack-5/0.100253bb7576627988e6.css similarity index 100% rename from test/cases/chunkFilename-fullhash/expected/webpack-5/0.4a73d63c8c2357971fc6.css rename to test/cases/chunkFilename-fullhash/expected/webpack-5/0.100253bb7576627988e6.css diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5/4a73d63c8c2357971fc6.css b/test/cases/chunkFilename-fullhash/expected/webpack-5/100253bb7576627988e6.css similarity index 100% rename from test/cases/chunkFilename-fullhash/expected/webpack-5/4a73d63c8c2357971fc6.css rename to test/cases/chunkFilename-fullhash/expected/webpack-5/100253bb7576627988e6.css diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5/main.js b/test/cases/chunkFilename-fullhash/expected/webpack-5/main.js index c7bd9182..62e0fb02 100644 --- a/test/cases/chunkFilename-fullhash/expected/webpack-5/main.js +++ b/test/cases/chunkFilename-fullhash/expected/webpack-5/main.js @@ -73,7 +73,7 @@ __webpack_require__.r(__webpack_exports__); /******/ /******/ /* webpack/runtime/getFullHash */ /******/ (() => { -/******/ __webpack_require__.h = () => ("4a73d63c8c2357971fc6") +/******/ __webpack_require__.h = () => ("100253bb7576627988e6") /******/ })(); /******/ /******/ /* webpack/runtime/global */ @@ -187,9 +187,10 @@ __webpack_require__.r(__webpack_exports__); /******/ if (event.type === 'load') { /******/ resolve(); /******/ } else { -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var errorType = event && event.type; /******/ var realHref = event && event.target && event.target.href || fullhref; -/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + realHref + ")"); +/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + errorType + ": " + realHref + ")"); +/******/ err.name = "ChunkLoadError"; /******/ err.code = "CSS_CHUNK_LOAD_FAILED"; /******/ err.type = errorType; /******/ err.request = realHref; diff --git a/test/cases/hmr/expected/main.js b/test/cases/hmr/expected/main.js index d8fbcd52..bd36274c 100644 --- a/test/cases/hmr/expected/main.js +++ b/test/cases/hmr/expected/main.js @@ -950,9 +950,10 @@ __webpack_require__.r(__webpack_exports__); /******/ if (event.type === 'load') { /******/ resolve(); /******/ } else { -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var errorType = event && event.type; /******/ var realHref = event && event.target && event.target.href || fullhref; -/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + realHref + ")"); +/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + errorType + ": " + realHref + ")"); +/******/ err.name = "ChunkLoadError"; /******/ err.code = "CSS_CHUNK_LOAD_FAILED"; /******/ err.type = errorType; /******/ err.request = realHref; diff --git a/test/cases/insert-function/expected/main.js b/test/cases/insert-function/expected/main.js index 2fc95f59..20571243 100644 --- a/test/cases/insert-function/expected/main.js +++ b/test/cases/insert-function/expected/main.js @@ -171,9 +171,10 @@ /******/ if (event.type === 'load') { /******/ resolve(); /******/ } else { -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var errorType = event && event.type; /******/ var realHref = event && event.target && event.target.href || fullhref; -/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + realHref + ")"); +/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + errorType + ": " + realHref + ")"); +/******/ err.name = "ChunkLoadError"; /******/ err.code = "CSS_CHUNK_LOAD_FAILED"; /******/ err.type = errorType; /******/ err.request = realHref; diff --git a/test/cases/insert-string/expected/main.js b/test/cases/insert-string/expected/main.js index 77cd9b2f..9f386939 100644 --- a/test/cases/insert-string/expected/main.js +++ b/test/cases/insert-string/expected/main.js @@ -171,9 +171,10 @@ /******/ if (event.type === 'load') { /******/ resolve(); /******/ } else { -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var errorType = event && event.type; /******/ var realHref = event && event.target && event.target.href || fullhref; -/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + realHref + ")"); +/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + errorType + ": " + realHref + ")"); +/******/ err.name = "ChunkLoadError"; /******/ err.code = "CSS_CHUNK_LOAD_FAILED"; /******/ err.type = errorType; /******/ err.request = realHref; diff --git a/test/cases/insert-undefined/expected/main.js b/test/cases/insert-undefined/expected/main.js index 3d950370..8a27fc4c 100644 --- a/test/cases/insert-undefined/expected/main.js +++ b/test/cases/insert-undefined/expected/main.js @@ -171,9 +171,10 @@ /******/ if (event.type === 'load') { /******/ resolve(); /******/ } else { -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var errorType = event && event.type; /******/ var realHref = event && event.target && event.target.href || fullhref; -/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + realHref + ")"); +/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + errorType + ": " + realHref + ")"); +/******/ err.name = "ChunkLoadError"; /******/ err.code = "CSS_CHUNK_LOAD_FAILED"; /******/ err.type = errorType; /******/ err.request = realHref;