diff --git a/src/index.spec.ts b/src/index.spec.ts index c3bf002..78bd46c 100644 --- a/src/index.spec.ts +++ b/src/index.spec.ts @@ -53,7 +53,7 @@ describe('Rollup Plugin Vue', () => { expect(code).toEqual( expect.stringContaining( - `import { render } from "example.vue?vue&type=template&id=063a7d4c"` + `import { render } from "example.vue?vue&type=template&id=063a7d4c&lang.js"` ) ) expect(code).toEqual(expect.stringContaining(`script.render = render`)) @@ -66,7 +66,7 @@ describe('Rollup Plugin Vue', () => { ) expect(code).toEqual( expect.stringContaining( - `import { render } from "example.vue?vue&type=template&id=063a7d4c"` + `import { render } from "example.vue?vue&type=template&id=063a7d4c&lang.js"` ) ) expect(code).toEqual(expect.stringContaining(`script.render = render`)) diff --git a/src/index.ts b/src/index.ts index 626565c..e71f860 100644 --- a/src/index.ts +++ b/src/index.ts @@ -144,9 +144,9 @@ export default function PluginVue(userOptions: Partial = {}): Plugin { const descriptor = getDescriptor(query.filename) const hasScoped = descriptor.styles.some((s) => s.scoped) if (query.src) { - this.addWatchFile(query.filename); + this.addWatchFile(query.filename) } - + if (query.type === 'template') { debug(`transform(${id})`) const block = descriptor.template! @@ -478,7 +478,7 @@ function getTemplateCode( const idQuery = `&id=${id}` const scopedQuery = hasScoped ? `&scoped=true` : `` const srcQuery = descriptor.template.src ? `&src` : `` - const attrsQuery = attrsToQuery(descriptor.template.attrs) + const attrsQuery = attrsToQuery(descriptor.template.attrs, 'js', true) const query = `?vue&type=template${idQuery}${srcQuery}${scopedQuery}${attrsQuery}` templateRequest = _(src + query) templateImport = `import { ${renderFnName} } from ${templateRequest}` @@ -638,12 +638,15 @@ function _(any: any) { return JSON.stringify(any) } -function normalizeSourceMap(map: SFCTemplateCompileResults['map'], id: string): any { +function normalizeSourceMap( + map: SFCTemplateCompileResults['map'], + id: string +): any { if (!map) return null as any if (!id.includes('type=script')) { - map.file = id; - map.sources[0] = id; + map.file = id + map.sources[0] = id } return {