mirror of https://github.com/vuejs/core.git
fix(hmr): prevent __VUE_HMR_RUNTIME__ from being overwritten by vue runtime in 3rd-party libraries (#13817)
close vitejs/vite-plugin-vue#644
This commit is contained in:
parent
8696e346b4
commit
1392734ae5
|
@ -31,11 +31,17 @@ export interface HMRRuntime {
|
||||||
// Note: for a component to be eligible for HMR it also needs the __hmrId option
|
// Note: for a component to be eligible for HMR it also needs the __hmrId option
|
||||||
// to be set so that its instances can be registered / removed.
|
// to be set so that its instances can be registered / removed.
|
||||||
if (__DEV__) {
|
if (__DEV__) {
|
||||||
getGlobalThis().__VUE_HMR_RUNTIME__ = {
|
const g = getGlobalThis()
|
||||||
|
// vite-plugin-vue/issues/644, #13202
|
||||||
|
// custom-element libraries bundle Vue to simplify usage outside Vue projects but
|
||||||
|
// it overwrite __VUE_HMR_RUNTIME__, causing HMR to break.
|
||||||
|
if (!g.__VUE_HMR_RUNTIME__) {
|
||||||
|
g.__VUE_HMR_RUNTIME__ = {
|
||||||
createRecord: tryWrap(createRecord),
|
createRecord: tryWrap(createRecord),
|
||||||
rerender: tryWrap(rerender),
|
rerender: tryWrap(rerender),
|
||||||
reload: tryWrap(reload),
|
reload: tryWrap(reload),
|
||||||
} as HMRRuntime
|
} as HMRRuntime
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const map: Map<
|
const map: Map<
|
||||||
|
|
Loading…
Reference in New Issue