mirror of https://github.com/vuejs/core.git
wip: fix compileScript script/script-setup co-usage
This commit is contained in:
parent
a9424354b0
commit
08879cc3b5
|
@ -1,5 +1,38 @@
|
||||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`SFC compile <script setup> <script> and <script setup> co-usage script first 1`] = `
|
||||||
|
"import { x } from './x'
|
||||||
|
|
||||||
|
export const n = 1
|
||||||
|
|
||||||
|
export default {
|
||||||
|
expose: [],
|
||||||
|
setup(__props) {
|
||||||
|
|
||||||
|
x()
|
||||||
|
|
||||||
|
return { x }
|
||||||
|
}
|
||||||
|
|
||||||
|
}"
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`SFC compile <script setup> <script> and <script setup> co-usage script setup first 1`] = `
|
||||||
|
"import { x } from './x'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
expose: [],
|
||||||
|
setup(__props) {
|
||||||
|
|
||||||
|
x()
|
||||||
|
|
||||||
|
return { x }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
export const n = 1"
|
||||||
|
`;
|
||||||
|
|
||||||
exports[`SFC compile <script setup> defineOptions() 1`] = `
|
exports[`SFC compile <script setup> defineOptions() 1`] = `
|
||||||
"export default {
|
"export default {
|
||||||
expose: [],
|
expose: [],
|
||||||
|
|
|
@ -53,6 +53,34 @@ const bar = 1
|
||||||
emit: ['a', 'b'],`)
|
emit: ['a', 'b'],`)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe('<script> and <script setup> co-usage', () => {
|
||||||
|
test('script first', () => {
|
||||||
|
const { content } = compile(`
|
||||||
|
<script>
|
||||||
|
export const n = 1
|
||||||
|
</script>
|
||||||
|
<script setup>
|
||||||
|
import { x } from './x'
|
||||||
|
x()
|
||||||
|
</script>
|
||||||
|
`)
|
||||||
|
assertCode(content)
|
||||||
|
})
|
||||||
|
|
||||||
|
test('script setup first', () => {
|
||||||
|
const { content } = compile(`
|
||||||
|
<script setup>
|
||||||
|
import { x } from './x'
|
||||||
|
x()
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
export const n = 1
|
||||||
|
</script>
|
||||||
|
`)
|
||||||
|
assertCode(content)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
describe('imports', () => {
|
describe('imports', () => {
|
||||||
test('should hoist and expose imports', () => {
|
test('should hoist and expose imports', () => {
|
||||||
assertCode(
|
assertCode(
|
||||||
|
|
|
@ -921,7 +921,7 @@ export function compileScript(
|
||||||
hasAwait ? `async ` : ``
|
hasAwait ? `async ` : ``
|
||||||
}setup(${args}) {\n`
|
}setup(${args}) {\n`
|
||||||
)
|
)
|
||||||
s.append(`})`)
|
s.appendRight(endOffset, `})`)
|
||||||
} else {
|
} else {
|
||||||
if (defaultExport) {
|
if (defaultExport) {
|
||||||
// can't rely on spread operator in non ts mode
|
// can't rely on spread operator in non ts mode
|
||||||
|
@ -939,7 +939,7 @@ export function compileScript(
|
||||||
`\nexport default {${runtimeOptions}\n ` +
|
`\nexport default {${runtimeOptions}\n ` +
|
||||||
`${hasAwait ? `async ` : ``}setup(${args}) {\n`
|
`${hasAwait ? `async ` : ``}setup(${args}) {\n`
|
||||||
)
|
)
|
||||||
s.append(`}`)
|
s.appendRight(endOffset, `}`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue