|
| 1 | +import { builtinModules } from 'node:module' |
1 | 2 | import type { UserConfig as ViteConfig, Plugin as VitePlugin } from 'vite'
|
2 |
| -import { relative } from 'pathe' |
| 3 | +import { normalize, relative, resolve } from 'pathe' |
| 4 | +import { toArray } from '@vitest/utils' |
| 5 | +import { resolveModule } from 'local-pkg' |
3 | 6 | import { configDefaults } from '../../defaults'
|
4 | 7 | import type { ResolvedConfig, UserConfig } from '../../types'
|
5 | 8 | import { deepMerge, notNullish, removeUndefinedValues } from '../../utils'
|
@@ -150,14 +153,24 @@ export async function VitestPlugin(options: UserConfig = {}, ctx = new Vitest('t
|
150 | 153 | }
|
151 | 154 | }
|
152 | 155 | else {
|
153 |
| - const entries = await ctx.globAllTestFiles(preOptions as ResolvedConfig, preOptions.dir || getRoot()) |
| 156 | + const root = config.root || process.cwd() |
| 157 | + const entries = await ctx.globAllTestFiles(preOptions as ResolvedConfig, preOptions.dir || root) |
| 158 | + if (preOptions?.setupFiles) { |
| 159 | + const setupFiles = toArray(preOptions.setupFiles).map((file: string) => |
| 160 | + normalize( |
| 161 | + resolveModule(file, { paths: [root] }) |
| 162 | + ?? resolve(root, file), |
| 163 | + ), |
| 164 | + ) |
| 165 | + entries.push(...setupFiles) |
| 166 | + } |
154 | 167 | optimizeConfig.cacheDir = preOptions.cache?.dir ?? 'node_modules/.vitest'
|
155 | 168 | optimizeConfig.optimizeDeps = {
|
156 | 169 | ...viteConfig.optimizeDeps,
|
157 | 170 | ...optimizer,
|
158 | 171 | disabled: false,
|
159 | 172 | entries: [...(optimizer.entries || viteConfig.optimizeDeps?.entries || []), ...entries],
|
160 |
| - exclude: ['vitest', ...(optimizer.exclude || viteConfig.optimizeDeps?.exclude || [])], |
| 173 | + exclude: ['vitest', ...builtinModules, ...(optimizer.exclude || viteConfig.optimizeDeps?.exclude || [])], |
161 | 174 | include: (optimizer.include || viteConfig.optimizeDeps?.include || []).filter((n: string) => n !== 'vitest'),
|
162 | 175 | }
|
163 | 176 | // Vite throws an error that it cannot rename "deps_temp", but optimization still works
|
|
0 commit comments