perf: do not enable hmr in non-browser envs

This commit is contained in:
Evan You 2020-10-06 11:35:51 -04:00
parent 5c3e8e9840
commit cf2c9f6faa
2 changed files with 10 additions and 5 deletions

View File

@ -25,7 +25,7 @@ export interface HMRRuntime {
// it easier to be used in toolings like vue-loader // it easier to be used in toolings like vue-loader
// 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__ && (__BROWSER__ || __TEST__)) {
const globalObject: any = const globalObject: any =
typeof global !== 'undefined' typeof global !== 'undefined'
? global ? global

View File

@ -885,7 +885,7 @@ function baseCreateRenderer(
invokeDirectiveHook(n2, n1, parentComponent, 'beforeUpdate') invokeDirectiveHook(n2, n1, parentComponent, 'beforeUpdate')
} }
if (__DEV__ && isHmrUpdating) { if (__DEV__ && (__BROWSER__ || __TEST__) && isHmrUpdating) {
// HMR updated, force full diff // HMR updated, force full diff
patchFlag = 0 patchFlag = 0
optimized = false optimized = false
@ -986,7 +986,12 @@ function baseCreateRenderer(
parentSuspense, parentSuspense,
areChildrenSVG areChildrenSVG
) )
if (__DEV__ && parentComponent && parentComponent.type.__hmrId) { if (
__DEV__ &&
(__BROWSER__ || __TEST__) &&
parentComponent &&
parentComponent.type.__hmrId
) {
traverseStaticChildren(n1, n2) traverseStaticChildren(n1, n2)
} }
} else if (!optimized) { } else if (!optimized) {
@ -1238,7 +1243,7 @@ function baseCreateRenderer(
parentSuspense parentSuspense
)) ))
if (__DEV__ && instance.type.__hmrId) { if (__DEV__ && (__BROWSER__ || __TEST__) && instance.type.__hmrId) {
registerHMR(instance) registerHMR(instance)
} }
@ -2109,7 +2114,7 @@ function baseCreateRenderer(
parentSuspense: SuspenseBoundary | null, parentSuspense: SuspenseBoundary | null,
doRemove?: boolean doRemove?: boolean
) => { ) => {
if (__DEV__ && instance.type.__hmrId) { if (__DEV__ && (__BROWSER__ || __TEST__) && instance.type.__hmrId) {
unregisterHMR(instance) unregisterHMR(instance)
} }