Ver código fonte

perf: do not enable hmr in non-browser envs

Evan You 5 anos atrás
pai
commit
cf2c9f6faa

+ 1 - 1
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

+ 9 - 4
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)
     }