From cf2c9f6faa95add4c23b20c4b8a6e477d05ff0ed Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 6 Oct 2020 11:35:51 -0400 Subject: [PATCH] perf: do not enable hmr in non-browser envs --- packages/runtime-core/src/hmr.ts | 2 +- packages/runtime-core/src/renderer.ts | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/runtime-core/src/hmr.ts b/packages/runtime-core/src/hmr.ts index df557313565..faf4cb24e72 100644 --- a/packages/runtime-core/src/hmr.ts +++ b/packages/runtime-core/src/hmr.ts @@ -25,7 +25,7 @@ export interface HMRRuntime { // 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 // to be set so that its instances can be registered / removed. -if (__DEV__) { +if (__DEV__ && (__BROWSER__ || __TEST__)) { const globalObject: any = typeof global !== 'undefined' ? global diff --git a/packages/runtime-core/src/renderer.ts b/packages/runtime-core/src/renderer.ts index 217e9a4c209..37f5a2ed7d3 100644 --- a/packages/runtime-core/src/renderer.ts +++ b/packages/runtime-core/src/renderer.ts @@ -885,7 +885,7 @@ function baseCreateRenderer( invokeDirectiveHook(n2, n1, parentComponent, 'beforeUpdate') } - if (__DEV__ && isHmrUpdating) { + if (__DEV__ && (__BROWSER__ || __TEST__) && isHmrUpdating) { // HMR updated, force full diff patchFlag = 0 optimized = false @@ -986,7 +986,12 @@ function baseCreateRenderer( parentSuspense, areChildrenSVG ) - if (__DEV__ && parentComponent && parentComponent.type.__hmrId) { + if ( + __DEV__ && + (__BROWSER__ || __TEST__) && + parentComponent && + parentComponent.type.__hmrId + ) { traverseStaticChildren(n1, n2) } } else if (!optimized) { @@ -1238,7 +1243,7 @@ function baseCreateRenderer( parentSuspense )) - if (__DEV__ && instance.type.__hmrId) { + if (__DEV__ && (__BROWSER__ || __TEST__) && instance.type.__hmrId) { registerHMR(instance) } @@ -2109,7 +2114,7 @@ function baseCreateRenderer( parentSuspense: SuspenseBoundary | null, doRemove?: boolean ) => { - if (__DEV__ && instance.type.__hmrId) { + if (__DEV__ && (__BROWSER__ || __TEST__) && instance.type.__hmrId) { unregisterHMR(instance) }