Просмотр исходного кода

fix(compiler-core): fix prod whitespace/comment removal

fix #1256
Evan You 5 лет назад
Родитель
Сommit
f3623e4d1e
1 измененных файлов с 6 добавлено и 8 удалено
  1. 6 8
      packages/compiler-core/src/parse.ts

+ 6 - 8
packages/compiler-core/src/parse.ts

@@ -216,13 +216,17 @@ function parseChildren(
               removedWhitespace = true
               nodes[i] = null as any
             } else {
-              // Otherwise, condensed consecutive whitespace inside the text down to
-              // a single space
+              // Otherwise, condensed consecutive whitespace inside the text
+              // down to a single space
               node.content = ' '
             }
           } else {
             node.content = node.content.replace(/[\t\r\n\f ]+/g, ' ')
           }
+        } else if (!__DEV__ && node.type === NodeTypes.COMMENT) {
+          // remove comment nodes in prod
+          removedWhitespace = true
+          nodes[i] = null as any
         }
       }
     } else if (parent && context.options.isPreTag(parent.tag)) {
@@ -239,12 +243,6 @@ function parseChildren(
 }
 
 function pushNode(nodes: TemplateChildNode[], node: TemplateChildNode): void {
-  // ignore comments in production
-  /* istanbul ignore next */
-  if (!__DEV__ && node.type === NodeTypes.COMMENT) {
-    return
-  }
-
   if (node.type === NodeTypes.TEXT) {
     const prev = last(nodes)
     // Merge if both this and the previous node are text and those are