From 3e61e13c31544b660731ff4f066f22bc110856e0 Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Tue, 15 Feb 2022 21:18:56 +0800 Subject: [PATCH 1/2] fix: vitest tsconfig should include all files under `src` Fixes #55 Fixes the case that a `.spec.ts` file inside `__test__/` imports a module outside of `__test__/` (a cross-(typescript-)project reference). Note that TypeScript looks for `include` patterns in `references` top-down, so `tsconfig.app.json` must come before `tsconfig.vitest.json` so that the `src/**` modules can get the most-accurate type hints. The previous tsconfig only works for `.vue` imports in `.spec.ts`, which seems to be a Volar bug. We shouldn't rely on that. This fix is a more accurate configuration. --- template/tsconfig/vitest/package.json | 2 +- template/tsconfig/vitest/tsconfig.app.json | 12 ++++++++++++ template/tsconfig/vitest/tsconfig.json | 14 ++++---------- template/tsconfig/vitest/tsconfig.vitest.json | 11 ++++------- 4 files changed, 21 insertions(+), 18 deletions(-) create mode 100644 template/tsconfig/vitest/tsconfig.app.json diff --git a/template/tsconfig/vitest/package.json b/template/tsconfig/vitest/package.json index 45389030..29b8d178 100644 --- a/template/tsconfig/vitest/package.json +++ b/template/tsconfig/vitest/package.json @@ -1,6 +1,6 @@ { "scripts": { - "typecheck": "vue-tsc --noEmit && vue-tsc --noEmit -p tsconfig.vitest.json --composite false" + "typecheck": "vue-tsc --noEmit -p tsconfig.vitest.json --composite false" }, "devDependencies": { "@types/jsdom": "^16.2.14" diff --git a/template/tsconfig/vitest/tsconfig.app.json b/template/tsconfig/vitest/tsconfig.app.json new file mode 100644 index 00000000..cdbea1d7 --- /dev/null +++ b/template/tsconfig/vitest/tsconfig.app.json @@ -0,0 +1,12 @@ +{ + "extends": "@vue/tsconfig/tsconfig.web.json", + "include": ["env.d.ts", "src/**/*", "src/**/*.vue"], + "exclude": ["src/**/__tests__/*"], + "compilerOptions": { + "composite": true, + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + } +} diff --git a/template/tsconfig/vitest/tsconfig.json b/template/tsconfig/vitest/tsconfig.json index 2551bf2f..24f21b06 100644 --- a/template/tsconfig/vitest/tsconfig.json +++ b/template/tsconfig/vitest/tsconfig.json @@ -1,18 +1,12 @@ { - "extends": "@vue/tsconfig/tsconfig.web.json", - "include": ["env.d.ts", "src/**/*", "src/**/*.vue"], - "exclude": ["src/**/__tests__/*"], - "compilerOptions": { - "baseUrl": ".", - "paths": { - "@/*": ["./src/*"] - } - }, - + "files": [], "references": [ { "path": "./tsconfig.vite-config.json" }, + { + "path": "./tsconfig.app.json" + }, { "path": "./tsconfig.vitest.json" } diff --git a/template/tsconfig/vitest/tsconfig.vitest.json b/template/tsconfig/vitest/tsconfig.vitest.json index 56675680..7906d3cb 100644 --- a/template/tsconfig/vitest/tsconfig.vitest.json +++ b/template/tsconfig/vitest/tsconfig.vitest.json @@ -1,12 +1,9 @@ { - "extends": "@vue/tsconfig/tsconfig.node.json", - "include": ["src/**/__tests__/*"], + "extends": "./tsconfig.app.json", + "exclude": [], "compilerOptions": { "composite": true, - "baseUrl": ".", - "paths": { - "@/*": ["./src/*"] - }, - "types": ["node", "jsdom"] + "lib": [], + "types": ["node", "vitest"] } } From d0dfd8c2144c3bd339b1a5317d9086f9a43c8a18 Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Tue, 15 Feb 2022 21:36:16 +0800 Subject: [PATCH 2/2] fix: typo --- template/tsconfig/vitest/tsconfig.vitest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template/tsconfig/vitest/tsconfig.vitest.json b/template/tsconfig/vitest/tsconfig.vitest.json index 7906d3cb..d080d611 100644 --- a/template/tsconfig/vitest/tsconfig.vitest.json +++ b/template/tsconfig/vitest/tsconfig.vitest.json @@ -4,6 +4,6 @@ "compilerOptions": { "composite": true, "lib": [], - "types": ["node", "vitest"] + "types": ["node", "jsdom"] } }