Skip to content

Commit 90d696d

Browse files
hi-ogawaOpenCode
andauthored
fix(browser): restore dependency reload warning (#10913)
Co-authored-by: Hiroshi Ogawa <4232207+hi-ogawa@users.noreply.github.com> Co-authored-by: OpenCode <noreply@opencode.ai>
1 parent d87c96e commit 90d696d

1 file changed

Lines changed: 35 additions & 1 deletion

File tree

packages/vitest/src/node/plugins/browserLoader.ts

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ import type {
99
ParentProjectBrowser,
1010
} from '../types/browser'
1111
import type { ConfigResolutionCaptures, ResolvedConfig, ResolvedProjectEntry } from '../types/config'
12+
import c from 'tinyrainbow'
1213
import { createViteServer } from '../vite'
14+
import { createViteLogger } from '../viteLogger'
1315

1416
function sortPluginsByEnforce(plugins: VitePlugin[]): VitePlugin[] {
1517
const pre: VitePlugin[] = []
@@ -57,7 +59,39 @@ export function BrowserLoaderPlugin(
5759
const contribution = await provider.serverFactory()
5860
captures.browserContribution = contribution
5961
const browserConfig = await contribution.config(viteConfig, harness)
60-
return browserConfig
62+
const logLevel = viteConfig.logLevel ?? 'warn'
63+
const logger = createViteLogger(harness.logger, logLevel, {
64+
allowClearScreen: false,
65+
})
66+
return {
67+
...browserConfig,
68+
customLogger: {
69+
...logger,
70+
info(message, options) {
71+
// https://github.com/vitejs/vite/blob/ba3119397d0110952f29965774c627a3017d7292/packages/vite/src/node/optimizer/optimizer.ts#L76-L86
72+
// https://github.com/vitejs/vite/blob/ba3119397d0110952f29965774c627a3017d7292/packages/vite/src/node/optimizer/optimizer.ts#L483-L490
73+
const isOptimizerMessage
74+
= message.includes('dependency optimized: ')
75+
|| message.includes('dependencies optimized: ')
76+
|| message.includes('optimized dependencies changed. reloading')
77+
if (isOptimizerMessage) {
78+
// escalate from `info` to `warn` so it shows up on Vitest's default logLevel `warn`
79+
logger.warn(message, options)
80+
}
81+
else {
82+
logger.info(message, options)
83+
}
84+
if (message.includes('optimized dependencies changed. reloading')) {
85+
logger.warn(
86+
[
87+
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`),
88+
c.yellow(`For a stable experience, add the newly optimized dependencies to your config's ${c.bold('`optimizeDeps.include`')} field manually.\n`),
89+
].join(''),
90+
)
91+
}
92+
},
93+
},
94+
}
6195
},
6296
applyToEnvironment(environment) {
6397
const contribution = captures.browserContribution

0 commit comments

Comments
 (0)
Sponsor
SponsoredKunjungi sekarang
Promo