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) - // checktag - 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 &&