From 05a673ee8acc719433a0ffe9486ef86efcc6b703 Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Thu, 4 Aug 2022 12:43:37 +0300 Subject: [PATCH 1/2] fix: better bundling of types --- packages/vitest/rollup.config.js | 34 +++++++++++++------------------- packages/vitest/src/defaults.ts | 5 +---- 2 files changed, 15 insertions(+), 24 deletions(-) diff --git a/packages/vitest/rollup.config.js b/packages/vitest/rollup.config.js index 54f7a5916c81..db5a61798aef 100644 --- a/packages/vitest/rollup.config.js +++ b/packages/vitest/rollup.config.js @@ -60,7 +60,7 @@ const plugins = [ }), ] -export default ({ watch }) => [ +export default ({ watch }) => defineConfig([ { input: entries, output: { @@ -107,25 +107,19 @@ export default ({ watch }) => [ external, plugins, }, - ...dtsEntries.map((input) => { - const _external = external - // index is vitest default types export - if (!input.includes('index')) - _external.push('vitest') - - return defineConfig({ - input, - output: { - file: input.replace('src/', 'dist/').replace('.ts', '.d.ts'), - format: 'esm', - }, - external: _external, - plugins: [ - dts({ respectExternal: true }), - ], - }) - }), -] + { + input: dtsEntries, + output: { + dir: 'dist', + entryFileNames: chunk => `${chunk.name.replace('src/', '')}.d.ts`, + format: 'esm', + }, + external, + plugins: [ + dts({ respectExternal: true }), + ], + }, +]) function licensePlugin() { return license({ diff --git a/packages/vitest/src/defaults.ts b/packages/vitest/src/defaults.ts index 0c8eedd955d4..63add24a37dd 100644 --- a/packages/vitest/src/defaults.ts +++ b/packages/vitest/src/defaults.ts @@ -1,7 +1,4 @@ -// rollup dts building will external vitest -// so output dts entry using vitest to import internal types -// eslint-disable-next-line no-restricted-imports -import type { ResolvedC8Options, UserConfig } from 'vitest' +import type { ResolvedC8Options, UserConfig } from './types' export const defaultInclude = ['**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'] export const defaultExclude = ['**/node_modules/**', '**/dist/**', '**/cypress/**', '**/.{idea,git,cache,output,temp}/**'] From b7a5841c339cf37612852b4cebd9609f1713caf0 Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Thu, 4 Aug 2022 13:35:06 +0300 Subject: [PATCH 2/2] chore: fix types clash --- package.json | 1 + packages/vitest/tsconfig.json | 4 ---- shims.d.ts | 1 - test/core/vitest.config.ts | 2 +- test/global-setup-fail/fixtures/vitest.config.ts | 2 -- test/global-setup-fail/vitest.config.ts | 2 -- test/global-setup/vitest.config.ts | 2 -- test/reporters/src/data.ts | 3 +-- test/vite-config/vite.config.ts | 2 -- tsconfig.json | 1 + 10 files changed, 4 insertions(+), 16 deletions(-) delete mode 100644 packages/vitest/tsconfig.json diff --git a/package.json b/package.json index 784204fae605..55996c62ad93 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "test:ci": "cross-env CI=true pnpm -r --stream --filter !test-fails --filter !test-browser run test --allowOnly", "test:ci:single-thread": "cross-env CI=true pnpm -r --stream --filter !test-fails run test --allowOnly --no-threads", "typecheck": "tsc --noEmit", + "typecheck:why": "tsc --noEmit --explainFiles > explainTypes.txt", "ui:build": "vite build packages/ui", "ui:dev": "vite packages/ui", "ui:test": "npm -C packages/ui run test:run" diff --git a/packages/vitest/tsconfig.json b/packages/vitest/tsconfig.json deleted file mode 100644 index e2018da9028e..000000000000 --- a/packages/vitest/tsconfig.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "exclude": ["./dist"] -} diff --git a/shims.d.ts b/shims.d.ts index 438671ebf5db..e8f0b016c0c9 100644 --- a/shims.d.ts +++ b/shims.d.ts @@ -1,3 +1,2 @@ -/// /// /// diff --git a/test/core/vitest.config.ts b/test/core/vitest.config.ts index 60409a7e06e5..abbb0fa1c691 100644 --- a/test/core/vitest.config.ts +++ b/test/core/vitest.config.ts @@ -1,5 +1,5 @@ import { basename, dirname, join, resolve } from 'pathe' -import { defineConfig } from 'vite' +import { defineConfig } from 'vitest/config' export default defineConfig({ plugins: [ diff --git a/test/global-setup-fail/fixtures/vitest.config.ts b/test/global-setup-fail/fixtures/vitest.config.ts index 04be25683675..8b5713f83ba3 100644 --- a/test/global-setup-fail/fixtures/vitest.config.ts +++ b/test/global-setup-fail/fixtures/vitest.config.ts @@ -1,5 +1,3 @@ -/// - import { defineConfig } from 'vite' export default defineConfig({ diff --git a/test/global-setup-fail/vitest.config.ts b/test/global-setup-fail/vitest.config.ts index 22d40dfd301e..41bc8c0ff39f 100644 --- a/test/global-setup-fail/vitest.config.ts +++ b/test/global-setup-fail/vitest.config.ts @@ -1,5 +1,3 @@ -/// - import { defineConfig } from 'vite' export default defineConfig({ diff --git a/test/global-setup/vitest.config.ts b/test/global-setup/vitest.config.ts index 699ca714a28e..288960df206a 100644 --- a/test/global-setup/vitest.config.ts +++ b/test/global-setup/vitest.config.ts @@ -1,5 +1,3 @@ -/// - import { defineConfig } from 'vite' export default defineConfig({ diff --git a/test/reporters/src/data.ts b/test/reporters/src/data.ts index 83676111e84e..0f6c1188b2b6 100644 --- a/test/reporters/src/data.ts +++ b/test/reporters/src/data.ts @@ -1,6 +1,5 @@ import { AssertionError } from 'assert' -import type { ErrorWithDiff } from '../../../packages/vitest/dist' -import type { File, Suite, Task } from '../../../packages/vitest/src/types' +import type { ErrorWithDiff, File, Suite, Task } from 'vitest' const file: File = { id: '1223128da3', diff --git a/test/vite-config/vite.config.ts b/test/vite-config/vite.config.ts index 2335424a572b..44cfde19f169 100644 --- a/test/vite-config/vite.config.ts +++ b/test/vite-config/vite.config.ts @@ -1,5 +1,3 @@ -/// - import assert from 'assert' import { join } from 'pathe' import { defineConfig } from 'vite' diff --git a/tsconfig.json b/tsconfig.json index 2bafc15ab1bd..d301f57e8fbf 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -36,6 +36,7 @@ "exclude": [ "**/dist/**", "./packages/vitest/dist/**", + "./packages/vitest/*.d.ts", "./packages/ui/client/**", "./examples/**/*.*", "./bench/**"