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

chore(sfc): omit false vapor multi-root marker (#14808)

edison 1 месяц назад
Родитель
Сommit
0c516295e2

+ 9 - 9
packages/compiler-sfc/__tests__/templateUtils.spec.ts

@@ -99,7 +99,7 @@ describe('multiRoot metadata', () => {
       },
       },
     )
     )
 
 
-    expect(content).toContain(`__multiRoot: false`)
+    expect(content).not.toContain(`__multiRoot`)
   })
   })
 
 
   test('treats a root if / else-if / else chain as a single owner unit', () => {
   test('treats a root if / else-if / else chain as a single owner unit', () => {
@@ -127,7 +127,7 @@ describe('multiRoot metadata', () => {
       },
       },
     )
     )
 
 
-    expect(content).toContain(`__multiRoot: false`)
+    expect(content).not.toContain(`__multiRoot`)
   })
   })
 
 
   test('treats preserved root comments as root units', () => {
   test('treats preserved root comments as root units', () => {
@@ -172,7 +172,7 @@ describe('multiRoot metadata', () => {
       },
       },
     )
     )
 
 
-    expect(content).toContain(`__multiRoot: false`)
+    expect(content).not.toContain(`__multiRoot`)
   })
   })
 
 
   test('ignores comments between root if branches', () => {
   test('ignores comments between root if branches', () => {
@@ -197,7 +197,7 @@ describe('multiRoot metadata', () => {
       },
       },
     )
     )
 
 
-    expect(content).toContain(`__multiRoot: false`)
+    expect(content).not.toContain(`__multiRoot`)
   })
   })
 
 
   test('ignores preserved whitespace between root if branches', () => {
   test('ignores preserved whitespace between root if branches', () => {
@@ -227,7 +227,7 @@ describe('multiRoot metadata', () => {
       },
       },
     )
     )
 
 
-    expect(content).toContain(`__multiRoot: false`)
+    expect(content).not.toContain(`__multiRoot`)
   })
   })
 
 
   test('treats root v-for as a single owner unit', () => {
   test('treats root v-for as a single owner unit', () => {
@@ -248,7 +248,7 @@ describe('multiRoot metadata', () => {
       },
       },
     )
     )
 
 
-    expect(content).toContain(`__multiRoot: false`)
+    expect(content).not.toContain(`__multiRoot`)
   })
   })
 
 
   test('treats a root slot outlet as a single owner unit', () => {
   test('treats a root slot outlet as a single owner unit', () => {
@@ -267,7 +267,7 @@ describe('multiRoot metadata', () => {
       },
       },
     )
     )
 
 
-    expect(content).toContain(`__multiRoot: false`)
+    expect(content).not.toContain(`__multiRoot`)
   })
   })
 
 
   test('treats root text with a sibling as multi-root', () => {
   test('treats root text with a sibling as multi-root', () => {
@@ -306,7 +306,7 @@ describe('multiRoot metadata', () => {
       },
       },
     )
     )
 
 
-    expect(content).toContain(`__multiRoot: false`)
+    expect(content).not.toContain(`__multiRoot`)
   })
   })
 
 
   test('treats a root component with a sibling as multi-root', () => {
   test('treats a root component with a sibling as multi-root', () => {
@@ -350,7 +350,7 @@ describe('multiRoot metadata', () => {
       },
       },
     )
     )
 
 
-    expect(content).toContain(`__multiRoot: false`)
+    expect(content).not.toContain(`__multiRoot`)
   })
   })
 
 
   test('marks an inline component as multi-root', () => {
   test('marks an inline component as multi-root', () => {

+ 5 - 4
packages/compiler-sfc/src/compileScript.ts

@@ -1098,10 +1098,11 @@ export function compileScript(
 
 
   // add multiRoot marker for vapor component
   // add multiRoot marker for vapor component
   if (vapor && !ssr && sfc.template && !sfc.template.src) {
   if (vapor && !ssr && sfc.template && !sfc.template.src) {
-    runtimeOptions += `\n  __multiRoot: ${isMultiRoot(
-      sfc.template.ast!,
-      options.templateOptions?.compilerOptions,
-    )},`
+    if (
+      isMultiRoot(sfc.template.ast!, options.templateOptions?.compilerOptions)
+    ) {
+      runtimeOptions += `\n  __multiRoot: true,`
+    }
   }
   }
 
 
   let definedOptions = ''
   let definedOptions = ''