emits: ['foo', 'bar'],`)
})
- test('<template inherit-attrs="false">', () => {
- const { content } = compile(`
- <script>
- export default {}
- </script>
- <template inherit-attrs="false">
- {{ a }}
- </template>
- `)
- assertCode(content)
-
- const { content: content2 } = compile(`
- <script setup>
- const a = 1
- </script>
- <template inherit-attrs="false">
- {{ a }}
- </template>
- `)
- assertCode(content2)
- })
-
describe('<script> and <script setup> co-usage', () => {
test('script first', () => {
const { content } = compile(`
)
}
+ // TODO remove on 3.2
+ if (sfc.template && sfc.template.attrs['inherit-attrs'] === 'false') {
+ warnOnce(
+ `experimetnal support for <template inherit-attrs="false"> support has ` +
+ `been removed. Use a <script> block with \`export default\` to ` +
+ `declare options.`
+ )
+ }
+
const scopeId = options.id ? options.id.replace(/^data-v-/, '') : ''
const cssVars = sfc.cssVars
- const hasInheritAttrsFlag =
- sfc.template && sfc.template.attrs['inherit-attrs'] === 'false'
const scriptLang = script && script.lang
const scriptSetupLang = scriptSetup && scriptSetup.lang
const isTS =
sourceType: 'module'
}).program.body
const bindings = analyzeScriptBindings(scriptAst)
- const needRewrite = cssVars.length || hasInheritAttrsFlag
let content = script.content
- if (needRewrite) {
+ if (cssVars.length) {
content = rewriteDefault(content, `__default__`, plugins)
if (cssVars.length) {
content += genNormalScriptCssVarsCode(
!!options.isProd
)
}
- if (hasInheritAttrsFlag) {
- content += `__default__.inheritAttrs = false`
- }
content += `\nexport default __default__`
}
return {
// 11. finalize default export
// expose: [] makes <script setup> components "closed" by default.
let runtimeOptions = `\n expose: [],`
- if (hasInheritAttrsFlag) {
- runtimeOptions += `\n inheritAttrs: false,`
- }
if (hasInlinedSsrRenderFn) {
runtimeOptions += `\n __ssrInlineRender: true,`
}