[READ-ONLY] Mirror of https://github.com/vitest-dev/vitest. Next generation testing framework powered by Vite. vitest.dev
test testing-tools vite
12

Configure Feed

Select the types of activity you want to include in your feed.

Revert "fix(browser): optimize build output and always prebundle vitest"

This reverts commit 00a391656c1246e37645abe21fc28c1994ad45bd.

Vladimir Sheremet (Jun 5, 2025, 12:10 PM +0200) 33f71207 00a39165

+42 -56
+3 -3
pnpm-lock.yaml
··· 688 688 '@vitest/spy': 689 689 specifier: workspace:* 690 690 version: link:../spy 691 - '@vitest/utils': 692 - specifier: workspace:* 693 - version: link:../utils 694 691 estree-walker: 695 692 specifier: ^3.0.3 696 693 version: 3.0.3 ··· 701 698 '@types/estree': 702 699 specifier: 'catalog:' 703 700 version: 1.0.7 701 + '@vitest/utils': 702 + specifier: workspace:* 703 + version: link:../utils 704 704 acorn-walk: 705 705 specifier: 'catalog:' 706 706 version: 8.3.4
-1
packages/mocker/package.json
··· 67 67 }, 68 68 "dependencies": { 69 69 "@vitest/spy": "workspace:*", 70 - "@vitest/utils": "workspace:*", 71 70 "estree-walker": "^3.0.3", 72 71 "magic-string": "catalog:" 73 72 },
-1
packages/mocker/rollup.config.js
··· 23 23 ...Object.keys(pkg.dependencies || {}), 24 24 ...Object.keys(pkg.peerDependencies || {}), 25 25 /^msw/, 26 - '@vitest/utils/source-map', 27 26 ] 28 27 29 28 const dtsUtils = createDtsUtils()
+4
packages/utils/package.json
··· 24 24 "types": "./dist/diff.d.ts", 25 25 "default": "./dist/diff.js" 26 26 }, 27 + "./ast": { 28 + "types": "./dist/ast.d.ts", 29 + "default": "./dist/ast.js" 30 + }, 27 31 "./error": { 28 32 "types": "./dist/error.d.ts", 29 33 "default": "./dist/error.js"
-1
packages/vitest/rollup.config.js
··· 82 82 'vite-node/utils', 83 83 '@vitest/mocker', 84 84 '@vitest/mocker/node', 85 - '@vitest/mocker/browser', 86 85 '@vitest/utils/diff', 87 86 '@vitest/utils/ast', 88 87 '@vitest/utils/error',
+1 -1
packages/browser/src/client/client.ts
··· 1 + import type { ModuleMocker } from '@vitest/mocker/browser' 1 2 import type { CancelReason } from '@vitest/runner' 2 3 import type { BirpcReturn } from 'birpc' 3 - import type { ModuleMocker } from 'vitest/internal/browser' 4 4 import type { WebSocketBrowserEvents, WebSocketBrowserHandlers } from '../node/types' 5 5 import type { IframeOrchestrator } from './orchestrator' 6 6 import { createBirpc } from 'birpc'
+1 -14
packages/browser/src/client/orchestrator.ts
··· 1 1 import type { GlobalChannelIncomingEvent, IframeChannelIncomingEvent, IframeChannelOutgoingEvent, IframeViewportDoneEvent, IframeViewportFailEvent } from '@vitest/browser/client' 2 2 import type { BrowserTesterOptions, SerializedConfig } from 'vitest' 3 3 import { channel, client, globalChannel } from '@vitest/browser/client' 4 + import { generateHash } from '@vitest/runner/utils' 4 5 import { relative } from 'pathe' 5 6 import { getUiAPI } from './ui' 6 7 import { getBrowserState, getConfig } from './utils' ··· 294 295 const project = config.name || '' 295 296 const path = relative(config.root, file) 296 297 return generateHash(`${path}${project}`) 297 - } 298 - 299 - // importing this from @vitest/runner bring it the whole runner 300 - function generateHash(str: string): string { 301 - let hash = 0 302 - if (str.length === 0) { 303 - return `${hash}` 304 - } 305 - for (let i = 0; i < str.length; i++) { 306 - const char = str.charCodeAt(i) 307 - hash = (hash << 5) - hash + char 308 - hash = hash & hash // Convert to 32bit integer 309 - } 310 - return `${hash}` 311 298 } 312 299 313 300 async function setIframeViewport(
+23 -5
packages/browser/src/node/plugin.ts
··· 188 188 ...(project.config.snapshotSerializers || []), 189 189 ] 190 190 191 + const exclude = [ 192 + 'vitest', 193 + 'vitest/internal/browser', 194 + 'vitest/runners', 195 + '@vitest/browser', 196 + '@vitest/browser/client', 197 + '@vitest/utils', 198 + '@vitest/utils/source-map', 199 + '@vitest/runner', 200 + '@vitest/spy', 201 + '@vitest/utils/error', 202 + '@vitest/snapshot', 203 + '@vitest/expect', 204 + 'std-env', 205 + 'tinybench', 206 + 'tinyspy', 207 + 'tinyrainbow', 208 + 'pathe', 209 + 'msw', 210 + 'msw/browser', 211 + ] 212 + 191 213 if (typeof project.config.diff === 'string') { 192 214 entries.push(project.config.diff) 193 215 } 194 - 195 - const exclude: string[] = [] 196 216 197 217 if (parentServer.vitest.coverageProvider) { 198 218 const coverage = parentServer.vitest.config.coverage ··· 217 237 } 218 238 219 239 const include = [ 220 - 'vitest', 221 - 'vitest/internal/browser', 222 240 'vitest > expect-type', 223 241 'vitest > @vitest/snapshot > magic-string', 224 242 'vitest > chai', ··· 257 275 }, 258 276 optimizeDeps: { 259 277 entries, 260 - // exclude, 278 + exclude, 261 279 include, 262 280 }, 263 281 }
-6
packages/mocker/src/node/index.ts
··· 1 - import { fileURLToPath } from 'node:url' 2 - import { resolve } from 'pathe' 3 - 4 1 export { createManualModuleSource } from '../utils' 5 2 export { automockModule, automockPlugin } from './automockPlugin' 6 3 export type { AutomockPluginOptions } from './automockPlugin' ··· 18 15 ServerMockResolution, 19 16 ServerResolverOptions, 20 17 } from './resolver' 21 - 22 - const pkgRoot = resolve(fileURLToPath(import.meta.url), '../..') 23 - export const distRoot: string = resolve(pkgRoot, 'dist')
+2 -8
packages/vitest/src/node/project.ts
··· 536 536 this.config.root, 537 537 this.vitest.version, 538 538 ) 539 - const [ 540 - { createBrowserServer, distRoot }, 541 - { distRoot: mockerDist }, 542 - ] = await Promise.all([ 543 - import('@vitest/browser'), 544 - import('@vitest/mocker/node'), 545 - ]) 539 + const { createBrowserServer, distRoot } = await import('@vitest/browser') 546 540 let cacheDir: string 547 541 const browser = await createBrowserServer( 548 542 this, ··· 556 550 }, 557 551 ...MocksPlugins({ 558 552 filter(id) { 559 - if (id.includes(distRoot) || id.includes(mockerDist) || id.includes(cacheDir)) { 553 + if (id.includes(distRoot) || id.includes(cacheDir)) { 560 554 return false 561 555 } 562 556 return true
+1 -5
packages/vitest/src/public/browser.ts
··· 3 3 stopCoverageInsideWorker, 4 4 takeCoverageInsideWorker, 5 5 } from '../integrations/coverage' 6 + 6 7 export { 7 8 loadDiffConfig, 8 9 loadSnapshotSerializers, 9 10 setupCommonEnv, 10 11 } from '../runtime/setup-common' 11 - 12 - export { NodeBenchmarkRunner, VitestTestRunner } from './runners' 13 - export { ModuleMocker } from '@vitest/mocker/browser' 14 12 export { collectTests, processError, startTests } from '@vitest/runner' 15 13 export * as SpyModule from '@vitest/spy' 16 14 export { ··· 21 19 } from '@vitest/utils' 22 20 export type { LoupeOptions, ParsedStack, StringifyOptions } from '@vitest/utils' 23 21 export { 24 - createStackString, 25 22 originalPositionFor, 26 - parseStacktrace, 27 23 TraceMap, 28 24 } from '@vitest/utils/source-map'
+1 -1
packages/browser/src/client/tester/mocker.ts
··· 1 - import { ModuleMocker } from 'vitest/internal/browser' 1 + import { ModuleMocker } from '@vitest/mocker/browser' 2 2 import { getBrowserState } from '../utils' 3 3 4 4 export class VitestBrowserClientMocker extends ModuleMocker {
+2 -4
packages/browser/src/client/tester/runner.ts
··· 5 5 import { globalChannel, onCancel } from '@vitest/browser/client' 6 6 import { page, userEvent } from '@vitest/browser/context' 7 7 import { 8 - createStackString, 9 8 loadDiffConfig, 10 9 loadSnapshotSerializers, 11 - NodeBenchmarkRunner, 12 10 originalPositionFor, 13 - parseStacktrace, 14 11 takeCoverageInsideWorker, 15 12 TraceMap, 16 - VitestTestRunner, 17 13 } from 'vitest/internal/browser' 14 + import { NodeBenchmarkRunner, VitestTestRunner } from 'vitest/runners' 15 + import { createStackString, parseStacktrace } from '../../../../utils/src/source-map' 18 16 import { executor, getWorkerState } from '../utils' 19 17 import { rpc } from './rpc' 20 18 import { VitestBrowserSnapshotEnvironment } from './snapshot'
+4 -6
packages/browser/src/client/tester/tester.ts
··· 19 19 import { browserHashMap, initiateRunner } from './runner' 20 20 import { CommandsManager } from './utils' 21 21 22 - const now = performance.now.bind(performance) 23 - 24 22 const debugVar = getConfig().env.VITEST_BROWSER_DEBUG 25 23 const debug = debugVar && debugVar !== 'false' 26 - ? (...args: unknown[]) => client.rpc.debug(...args.map(String)) 24 + ? (...args: unknown[]) => client.rpc.debug?.(...args.map(String)) 27 25 : undefined 28 26 29 27 channel.addEventListener('message', async (e) => { ··· 144 142 }) 145 143 } 146 144 147 - state.durations.prepare = options.startTime - now() 145 + state.durations.prepare = performance.now() - options.startTime 148 146 149 147 return { 150 148 runner, ··· 196 194 } 197 195 198 196 async function prepare(options: PrepareOptions) { 199 - // fetch('file://non-existing-1').catch(() => {}) 200 197 preparedData = await prepareTestEnvironment(options) 201 - // fetch('file://non-existing-2').catch(() => {}) 202 198 203 199 // page is reloading 204 200 debug?.('runner resolved successfully') 205 201 206 202 const { config, state } = preparedData 203 + 204 + state.durations.prepare = performance.now() - state.durations.prepare 207 205 208 206 debug?.('prepare time', state.durations.prepare, 'ms') 209 207