Skip to content

Commit b8e6133

Browse files
authored
fix: invalidate script module cache when it changed in hot update (#67)
fixes vitejs/vite#11008
1 parent eaa7886 commit b8e6133

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

Diff for: src/handleHotUpdate.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ export async function handleHotUpdate(
3535
)
3636
const templateModule = modules.find((m) => /type=template/.test(m.url))
3737

38-
if (hasScriptChanged(prevDescriptor, descriptor)) {
38+
const scriptChanged = hasScriptChanged(prevDescriptor, descriptor)
39+
if (scriptChanged) {
3940
let scriptModule: ModuleNode | undefined
4041
if (
4142
(descriptor.scriptSetup?.lang && !descriptor.scriptSetup.src) ||
@@ -56,7 +57,7 @@ export async function handleHotUpdate(
5657
// binding metadata. However, when reloading the template alone the binding
5758
// metadata will not be available since the script part isn't loaded.
5859
// in this case, reuse the compiled script from previous descriptor.
59-
if (mainModule && !affectedModules.has(mainModule)) {
60+
if (!scriptChanged) {
6061
setResolvedScript(
6162
descriptor,
6263
getResolvedScript(prevDescriptor, false)!,

0 commit comments

Comments
 (0)