diff --git a/packages/compiler-core/src/parse.ts b/packages/compiler-core/src/parse.ts index ebae0ce2..9e6ee326 100644 --- a/packages/compiler-core/src/parse.ts +++ b/packages/compiler-core/src/parse.ts @@ -425,6 +425,10 @@ function parseElement( const isVPreBoundary = context.inVPre && !wasInVPre if (element.isSelfClosing || context.options.isVoidTag(element.tag)) { + // #4030 self-closing
tag
+ if (context.options.isPreTag(element.tag)) {
+ context.inPre = false
+ }
return element
}
@@ -528,14 +532,15 @@ function parseTag(
const cursor = getCursor(context)
const currentSource = context.source
- // Attributes.
- let props = parseAttributes(context, type)
-
// check tag
- if (context.options.isPreTag(tag)) {
+ const isPreTag = context.options.isPreTag(tag)
+ if (isPreTag) {
context.inPre = true
}
+ // Attributes.
+ let props = parseAttributes(context, type)
+
// check v-pre
if (
type === TagType.Start &&