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/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}/**']
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/**"