- Vite Documentation | - Vue 3 Documentation -
+ +Recommended IDE setup: VSCode + - Vetur - + - Vue DX + + Vetur + + + Vue DX + + + Volar +
-- If using <script setup>: use - Volar instead (and disable Vetur) -
-
- Make sure to use workspace version of TypeScript!!!
-
This leverages the
- @vuex/typescript-plugin-vue
to provide types for `*.vue` imports.
-
1. Open
+
+ tsconfig setup:
+
1. Install and add
+ @vuex/typescript-plugin-vue
to tsconfig plugins
+
2. Delete shims-vue.d.ts
+
3. Open
src/main.ts
in VSCode
-
2. Open VSCode command input
-
3. Search and run "Select TypeScript version" -> "Use workspace version"
+
4. Open VSCode command input
+
5. Search and run "Select TypeScript version" -> "Use workspace version"
Edit
components/HelloWorld.vue
to test hot module replacement.
+ Vite Docs | + Vue 3 Docs +
@@ -65,4 +74,16 @@ export default defineComponent({ a { color: #42b983; } - \ No newline at end of file + +label { + margin: 0 0.5em; + font-weight: bold; +} + +code { + background-color: #eee; + padding: 2px 4px; + border-radius: 4px; + color: #304455; +} + diff --git a/packages/create-app/template-vue-ts/src/main.ts b/packages/create-app/template-vue-ts/src/main.ts index 5f4a910f9bb0c4..01433bca2ac765 100644 --- a/packages/create-app/template-vue-ts/src/main.ts +++ b/packages/create-app/template-vue-ts/src/main.ts @@ -1,6 +1,4 @@ import { createApp } from 'vue' -// TypeScript error? Run VSCode command -// TypeScript: Select TypeScript version - > Use Workspace Version import App from './App.vue' createApp(App).mount('#app') diff --git a/packages/create-app/template-vue-ts/src/shims-vue.d.ts b/packages/create-app/template-vue-ts/src/shims-vue.d.ts new file mode 100644 index 00000000000000..ac1ded792334c2 --- /dev/null +++ b/packages/create-app/template-vue-ts/src/shims-vue.d.ts @@ -0,0 +1,5 @@ +declare module '*.vue' { + import { DefineComponent } from 'vue' + const component: DefineComponent<{}, {}, any> + export default component +} diff --git a/packages/create-app/template-vue-ts/tsconfig.json b/packages/create-app/template-vue-ts/tsconfig.json index e93a34d9aad938..e754e65292f1a0 100644 --- a/packages/create-app/template-vue-ts/tsconfig.json +++ b/packages/create-app/template-vue-ts/tsconfig.json @@ -6,11 +6,10 @@ "strict": true, "jsx": "preserve", "sourceMap": true, - "lib": ["esnext", "dom"], - "types": ["vite/client"], - "plugins": [{ "name": "@vuedx/typescript-plugin-vue" }], "resolveJsonModule": true, - "esModuleInterop": true + "esModuleInterop": true, + "lib": ["esnext", "dom"], + "types": ["vite/client"] }, "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"] }