This repository was archived by the owner on Dec 25, 2024. It is now read-only.
File tree Expand file tree Collapse file tree 10 files changed +393
-17
lines changed Expand file tree Collapse file tree 10 files changed +393
-17
lines changed Original file line number Diff line number Diff line change @@ -88,7 +88,7 @@ And then use [`vue-tsc`](https://github.com/johnsoncodehk/volar) to do the type
88
88
{
89
89
" scripts" : {
90
90
" dev" : " nuxt" ,
91
- " build" : " vue-tsc --noEmit && nuxt build" ,
91
+ " build" : " vue-tsc --noEmit && nuxt build"
92
92
}
93
93
}
94
94
```
@@ -112,6 +112,40 @@ module.exports = {
112
112
113
113
Example: [ ` examples/vue-cli ` ] ( ./examples/vue-cli )
114
114
115
+ ###### TypeScript
116
+
117
+ To use TypeScript with Vue CLI, install ` @vue/cli-plugin-typescript ` but disable the type check:
118
+
119
+ ``` bash
120
+ npm i -D @vue/cli-plugin-typescript vue-tsc
121
+ ```
122
+
123
+ ``` ts
124
+ module .exports = {
125
+ configureWebpack: {
126
+ plugins: [
127
+ require (' vue2-script-setup-transform/webpack-plugin' ).default (),
128
+ ],
129
+ },
130
+ chainWebpack(config ) {
131
+ // disable type check and let `vue-tsc` handles it
132
+ config .plugins .delete (' fork-ts-checker' )
133
+ },
134
+ }
135
+ ```
136
+
137
+ And then use [ ` vue-tsc ` ] ( https://github.com/johnsoncodehk/volar ) to do the type check at build time:
138
+
139
+ ``` jsonc
140
+ // package.json
141
+ {
142
+ " scripts" : {
143
+ " dev" : " vue-cli-service serve" ,
144
+ " build" : " vue-tsc --noEmit && vue-cli-service build"
145
+ }
146
+ }
147
+ ```
148
+
115
149
<br ></details >
116
150
117
151
<details >
Original file line number Diff line number Diff line change 3
3
"private" : true ,
4
4
"scripts" : {
5
5
"dev" : " vue-cli-service serve" ,
6
- "build" : " vue-cli-service build" ,
6
+ "build" : " vue-tsc --noEmit && vue- cli-service build" ,
7
7
"lint" : " vue-cli-service lint"
8
8
},
9
9
"dependencies" : {
12
12
},
13
13
"devDependencies" : {
14
14
"@vue/cli-plugin-babel" : " ~4.5.0" ,
15
+ "@vue/cli-plugin-typescript" : " ~4.5.0" ,
15
16
"@vue/cli-service" : " ~4.5.0" ,
17
+ "typescript" : " ~4.1.5" ,
16
18
"vue-template-compiler" : " ^2.6.11" ,
19
+ "vue-tsc" : " ^0.3.0" ,
17
20
"vue2-script-setup-transform" : " workspace:*"
18
21
}
19
22
}
Original file line number Diff line number Diff line change 4
4
</div >
5
5
</template >
6
6
7
- <script setup>
7
+ <script setup lang="ts" >
8
8
import HelloWorld from ' ./components/HelloWorld.vue'
9
9
</script >
10
10
Original file line number Diff line number Diff line change 8
8
</p >
9
9
<h3 >Installed CLI Plugins</h3 >
10
10
<ul >
11
- <li ><a href =" https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target =" _blank" rel =" noopener" >babel</a ></li >
12
- <li ><a href =" https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target =" _blank" rel =" noopener" >eslint</a ></li >
11
+ <li ><a href =" https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-typescript" target =" _blank" rel =" noopener" >typescript</a ></li >
13
12
</ul >
14
13
<h3 >Essential Links</h3 >
15
14
<ul >
30
29
</div >
31
30
</template >
32
31
33
- <script setup>
32
+ <script setup lang="ts" >
34
33
defineProps ({
35
34
msg: String ,
36
35
})
Original file line number Diff line number Diff line change @@ -5,6 +5,6 @@ import App from './App.vue'
5
5
Vue . config . productionTip = false
6
6
Vue . use ( VueCompostionAPI )
7
7
8
- const app = new Vue ( { render : h => h ( App ) } )
8
+ const app = new Vue ( { render : h => h ( App as any ) } )
9
9
10
10
app . $mount ( '#app' )
Original file line number Diff line number Diff line change
1
+ declare module '*.vue' {
2
+ import Vue from 'vue'
3
+ export default Vue
4
+ }
Original file line number Diff line number Diff line change
1
+ {
2
+ "compilerOptions" : {
3
+ "target" : " esnext" ,
4
+ "module" : " esnext" ,
5
+ "strict" : true ,
6
+ "jsx" : " preserve" ,
7
+ "importHelpers" : true ,
8
+ "moduleResolution" : " node" ,
9
+ "skipLibCheck" : true ,
10
+ "esModuleInterop" : true ,
11
+ "allowSyntheticDefaultImports" : true ,
12
+ "sourceMap" : true ,
13
+ "baseUrl" : " ." ,
14
+ "types" : [
15
+ " webpack-env" ,
16
+ " vue2-script-setup-transform/types"
17
+ ],
18
+ "paths" : {
19
+ "@/*" : [
20
+ " src/*"
21
+ ]
22
+ },
23
+ "lib" : [
24
+ " esnext" ,
25
+ " dom" ,
26
+ " dom.iterable" ,
27
+ " scripthost"
28
+ ]
29
+ },
30
+ "include" : [
31
+ " src/**/*.ts" ,
32
+ " src/**/*.tsx" ,
33
+ " src/**/*.vue" ,
34
+ " tests/**/*.ts" ,
35
+ " tests/**/*.tsx"
36
+ ],
37
+ "exclude" : [
38
+ " node_modules"
39
+ ]
40
+ }
Original file line number Diff line number Diff line change @@ -11,4 +11,8 @@ module.exports = {
11
11
ScriptSetup ( ) ,
12
12
] ,
13
13
} ,
14
+ chainWebpack ( config ) {
15
+ // disable type check and let `vue-tsc` handles it
16
+ config . plugins . delete ( 'fork-ts-checker' )
17
+ } ,
14
18
}
Original file line number Diff line number Diff line change 77
77
"esno" : " ^0.9.1" ,
78
78
"fast-glob" : " ^3.2.7" ,
79
79
"jest" : " ^27.0.6" ,
80
+ "log-editor" : " ^0.1.0" ,
80
81
"rimraf" : " ^3.0.2" ,
81
82
"ts-jest" : " ^27.0.5" ,
82
83
"tsup" : " ^4.14.0" ,
You can’t perform that action at this time.
0 commit comments