Files
vercel__next.js/packages/react-refresh-utils/rspack-runtime.ts
Cong-Cong Pan 5712c05c55 fix(Rspack): resolve HMR unresponsiveness or unexpected full reload & update dev snapshot (#83480)
This commit addresses the bugs where Hot Module Replacement (HMR) was
not functioning correctly in Rspack mode. Component edits would often
result in no update or a full page reload instead of a fast,
state-preserving refresh.

This commit implements a new, custom React Refresh plugin and runtime
specifically for Rspack, which correctly orchestrates the HMR lifecycle.
2025-09-16 01:26:36 +00:00

21 lines
703 B
TypeScript

import RefreshRuntime from 'react-refresh/runtime'
import type { RefreshRuntimeGlobals } from './runtime'
declare const self: Window & RefreshRuntimeGlobals
if (typeof self !== 'undefined') {
var $RefreshInjected$ = '__reactRefreshInjected'
// Only inject the runtime if it hasn't been injected
if (!self[$RefreshInjected$]) {
RefreshRuntime.injectIntoGlobalHook(self)
// Empty implementation to avoid "ReferenceError: variable is not defined" in module which didn't pass builtin:react-refresh-loader
self.$RefreshSig$ = () => (type) => type
self.$RefreshReg$ = () => {}
// Mark the runtime as injected to prevent double-injection
self[$RefreshInjected$] = true
}
}