|
1 | 1 | import type { WorkspaceProject } from 'vitest/node'
|
2 | 2 | import type { Plugin } from 'vitest/config'
|
3 |
| -import { createServer } from 'vitest/node' |
| 3 | +import { createViteLogger, createViteServer } from 'vitest/node' |
4 | 4 | import c from 'tinyrainbow'
|
5 | 5 | import { version } from '../../package.json'
|
6 | 6 | import { setupBrowserRpc } from './rpc'
|
@@ -30,10 +30,28 @@ export async function createBrowserServer(
|
30 | 30 |
|
31 | 31 | const configPath = typeof configFile === 'string' ? configFile : false
|
32 | 32 |
|
33 |
| - const vite = await createServer({ |
| 33 | + const logLevel = (process.env.VITEST_BROWSER_DEBUG as 'info') ?? 'info' |
| 34 | + |
| 35 | + const logger = createViteLogger(logLevel) |
| 36 | + |
| 37 | + const vite = await createViteServer({ |
34 | 38 | ...project.options, // spread project config inlined in root workspace config
|
35 | 39 | base: '/',
|
36 |
| - logLevel: (process.env.VITEST_BROWSER_DEBUG as 'info') ?? 'info', |
| 40 | + logLevel, |
| 41 | + customLogger: { |
| 42 | + ...logger, |
| 43 | + info(msg, options) { |
| 44 | + logger.info(msg, options) |
| 45 | + if (msg.includes('optimized dependencies changed. reloading')) { |
| 46 | + logger.warn( |
| 47 | + [ |
| 48 | + c.yellow(`\n${c.bold('[vitest]')} Vite unexpectedly reloaded a test. This may cause tests to fail, lead to flaky behaviour or duplicated test runs.\n`), |
| 49 | + c.yellow(`For a stable experience, please add mentioned dependencies to your config\'s ${c.bold('\`optimizeDeps.include\`')} field manually.\n\n`), |
| 50 | + ].join(''), |
| 51 | + ) |
| 52 | + } |
| 53 | + }, |
| 54 | + }, |
37 | 55 | mode: project.config.mode,
|
38 | 56 | configFile: configPath,
|
39 | 57 | // watch is handled by Vitest
|
|
0 commit comments