@@ -284,21 +284,22 @@ When upgrading the vitest version:
284284### Build Flow
285285
286286```
287- 1. bundleVitest() Copy vitest-dev dist/ -> dist/
288- 2. copyVitestPackages() Copy @vitest/* -> dist/@vitest/
289- 3. convertTabsToSpaces() Normalize formatting for patches
290- 4. collectLeafDependencies() Parse imports with oxc-parser
291- 5. bundleLeafDeps() Bundle chai, pathe, etc -> dist/vendor/
292- 6. rewriteVitestImports() Rewrite @vitest/*, vitest/*, vite
293- 7. patchVitestPkgRootPaths() Fix distRoot for relocated files
287+ 1. bundleVitest() Copy vitest-dev dist/ -> dist/
288+ 2. copyVitestPackages() Copy @vitest/* -> dist/@vitest/
289+ 3. convertTabsToSpaces() Normalize formatting for patches
290+ 4. collectLeafDependencies() Parse imports with oxc-parser
291+ 5. bundleLeafDeps() Bundle chai, pathe, etc -> dist/vendor/
292+ 6. rewriteVitestImports() Rewrite @vitest/*, vitest/*, vite
293+ 7. patchVitestPkgRootPaths() Fix distRoot for relocated files
2942948. patchVitestBrowserPackage() Inject vendor-aliases plugin
295- 9. patchPlaywrightLocators () Fix browser-safe imports
295+ 9. patchBrowserProviderLocators () Fix browser-safe imports
29629610. Post-processing:
297297 - patchVendorPaths()
298298 - createBrowserCompatShim()
299299 - createModuleRunnerStub() Browser-safe stub
300300 - createNodeEntry() index-node.js with browser-provider
301301 - copyBrowserClientFiles()
302+ - createBrowserEntryFiles() browser/ entry files at package root
302303 - createPluginExports() dist/plugins/* for pnpm overrides
303304 - mergePackageJson()
304305 - validateExternalDeps()
@@ -307,6 +308,9 @@ When upgrading the vitest version:
307308### Output Structure
308309
309310```
311+ browser/ # Entry files for ./browser export
312+ ├── context.js # Runtime guard (throws if not in browser)
313+ └── context.d.ts # Re-exports from dist/@vitest/browser/context.d.ts
310314dist/
311315├── @vitest/ # Copied packages (browser/Node.js safe)
312316│ ├── runner/
@@ -355,6 +359,7 @@ This is achieved through:
3553594 . ` vendor-aliases ` plugin injection to resolve imports at runtime:
356360 - Handles ` @vitest/* ` imports → resolves to copied ` dist/@vitest/ ` files
357361 - Handles ` vitest/* ` subpaths → resolves to dist files (enables ` vitest/browser-playwright ` usage)
362+ - Handles ` vitest/browser-playwright ` , ` vitest/browser-webdriverio ` , ` vitest/browser-preview ` → resolves to bundled browser providers
358363 - Handles ` @voidzero-dev/vite-plus-test/* ` subpaths → maps to equivalent vitest paths
359364 - Handles ` @voidzero-dev/vite-plus/test/* ` subpaths → maps to equivalent vitest paths (CLI package)
360365 - Intercepts ` vitest/browser ` , ` @voidzero-dev/vite-plus-test/browser ` , ` @voidzero-dev/vite-plus/test/browser ` → returns virtual module ID for BrowserContext plugin
0 commit comments