diff --git a/src/vueTransform.js b/src/vueTransform.js index b22050e..4091ecc 100644 --- a/src/vueTransform.js +++ b/src/vueTransform.js @@ -164,7 +164,20 @@ async function processStyle (styles, id, content, options) { return outputs } -function parseTemplate (code) { +function checkIfTemplateContainsMoreElements (node) { + let count = 0 + + node.content.childNodes.forEach((node) => { + // filter text/comment node + if (node.nodeName.indexOf('#') === -1) { + count++ + } + }) + + return count > 1 +} + +function parseTemplate (id, code) { debug('Parsing template....') const fragment = parse5.parseFragment(code, { locationInfo: true }) @@ -180,6 +193,10 @@ function parseTemplate (code) { continue } + if (name === 'template' && checkIfTemplateContainsMoreElements(fragment.childNodes[i])) { + throw new Error(`[rollup-plugin-vue] Error in ${id}:\n