diff --git a/packages/next/client/components/react-dev-overlay/hot-reloader-client.tsx b/packages/next/client/components/react-dev-overlay/hot-reloader-client.tsx index 0a5cbb9c6a78..4b77621c09c5 100644 --- a/packages/next/client/components/react-dev-overlay/hot-reloader-client.tsx +++ b/packages/next/client/components/react-dev-overlay/hot-reloader-client.tsx @@ -144,7 +144,7 @@ function tryApplyUpdates( return } - const hasUpdates = Boolean(updatedModules?.length) + const hasUpdates = Boolean(updatedModules.length) if (typeof onHotUpdateSuccess === 'function') { // Maybe we want to do something. onHotUpdateSuccess(hasUpdates) @@ -176,8 +176,12 @@ function tryApplyUpdates( module.hot .check(/* autoApply */ false) .then((updatedModules: any[] | null) => { - const hasUpdates = Boolean(updatedModules?.length) + if (!updatedModules) { + return null + } + if (typeof onBeforeUpdate === 'function') { + const hasUpdates = Boolean(updatedModules.length) onBeforeUpdate(hasUpdates) } // https://webpack.js.org/api/hot-module-replacement/#apply @@ -185,7 +189,7 @@ function tryApplyUpdates( return module.hot.apply() }) .then( - (updatedModules: any) => { + (updatedModules: any[] | null) => { handleApplyUpdates(null, updatedModules) }, (err: any) => { diff --git a/packages/next/client/dev/error-overlay/hot-dev-client.js b/packages/next/client/dev/error-overlay/hot-dev-client.js index fa613a6ee03d..63d0256ac3a6 100644 --- a/packages/next/client/dev/error-overlay/hot-dev-client.js +++ b/packages/next/client/dev/error-overlay/hot-dev-client.js @@ -337,7 +337,7 @@ function tryApplyUpdates(onBeforeHotUpdate, onHotUpdateSuccess) { return } - const hasUpdates = Boolean(updatedModules?.length) + const hasUpdates = Boolean(updatedModules.length) if (typeof onHotUpdateSuccess === 'function') { // Maybe we want to do something. onHotUpdateSuccess(hasUpdates) @@ -367,8 +367,12 @@ function tryApplyUpdates(onBeforeHotUpdate, onHotUpdateSuccess) { module.hot .check(/* autoApply */ false) .then((updatedModules) => { + if (!updatedModules) { + return null + } + if (typeof onBeforeHotUpdate === 'function') { - const hasUpdates = Boolean(updatedModules?.length) + const hasUpdates = Boolean(updatedModules.length) onBeforeHotUpdate(hasUpdates) } return module.hot.apply()