Skip to content

Commit d7d8fcb

Browse files
committed
feat: script setup support
1 parent 457f19e commit d7d8fcb

File tree

4 files changed

+38
-7
lines changed

4 files changed

+38
-7
lines changed
Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
<script>
2-
import Hello from './Hello.vue'
3-
4-
console.log(Hello)
2+
import Counter from './Counter.vue'
3+
import ScriptSetup from './ScriptSetup.vue'
54
65
export default {
76
components: {
8-
Hello,
7+
Counter,
8+
ScriptSetup,
99
},
1010
}
1111
</script>
1212

1313
<template>
14-
<Hello />
14+
<Counter />
15+
<ScriptSetup />
1516
</template>

demo-app/imports/ui/components/Hello.vue renamed to demo-app/imports/ui/components/Counter.vue

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export default {
77
88
function increment () {
99
counter.value++
10+
console.log('incremented!')
1011
}
1112
1213
return {
@@ -20,11 +21,12 @@ export default {
2021
<template>
2122
<button @click="increment()">Click Me</button>
2223
<p>You've pressed the button {{counter}} times.</p>
24+
<button @click="meow.waf()">Throw template error</button>
2325
</template>
2426

2527
<style scoped>
2628
button {
27-
background: green;
29+
background: rgb(28, 124, 76);
2830
color: white;
2931
border: none;
3032
border-radius: 6px;
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<script setup>
2+
import { ref } from 'vue'
3+
4+
const counter = ref(0)
5+
6+
function increment () {
7+
counter.value++
8+
console.log('incremented!')
9+
}
10+
</script>
11+
12+
<template>
13+
<button @click="increment()">Click Me</button>
14+
<p>You've pressed the button {{counter}} times.</p>
15+
</template>
16+
17+
<style scoped>
18+
button {
19+
background: #224e64;
20+
color: white;
21+
border: none;
22+
border-radius: 6px;
23+
padding: 8px 12px;
24+
cursor: pointer;
25+
}
26+
</style>

packages/vue3/src/compiler.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export class VueCompiler extends MultiFileCachingCompiler {
4242
const hasScoped = descriptor.styles.some((s) => s.scoped)
4343
const scopeId = hash(inputFile.getPathInPackage())
4444

45-
if (descriptor.script) {
45+
if (descriptor.script || descriptor.scriptSetup) {
4646
const scriptResult = compileScript(descriptor, {
4747
id: scopeId,
4848
isProd,
@@ -65,6 +65,8 @@ export class VueCompiler extends MultiFileCachingCompiler {
6565
})
6666
if (!compileResult.source) {
6767
compileResult.source = 'const __script__ = {};'
68+
} else {
69+
compileResult.source += '\n'
6870
}
6971
const lines = compileResult.source.split('\n').length
7072
compileResult.source += templateResult.code

0 commit comments

Comments
 (0)