expect(descriptor.script!.attrs['src']).toBe('com')
})
+ test('should not expose ast on template node if has src import', () => {
+ const { descriptor } = parse(`<template src="./foo.html"/>`)
+ expect(descriptor.template!.ast).toBeUndefined()
+ })
+
test('ignoreEmpty: false', () => {
const { descriptor } = parse(
`<script></script>\n<script setup>\n</script>`,
expect(errors.length).toBe(0)
expect(descriptor.template!.content).toBe(content)
// should not attempt to parse the content
- expect(descriptor.template!.ast.children.length).toBe(1)
+ expect(descriptor.template!.ast!.children.length).toBe(1)
})
//#2566
export interface SFCTemplateBlock extends SFCBlock {
type: 'template'
- ast: RootNode
+ ast?: RootNode
}
export interface SFCScriptBlock extends SFCBlock {
source,
false
) as SFCTemplateBlock)
- templateBlock.ast = createRoot(node.children, source)
+
+ if (!templateBlock.attrs.src) {
+ templateBlock.ast = createRoot(node.children, source)
+ }
// warn against 2.x <template functional>
if (templateBlock.attrs.functional) {