โ ๏ธ Breaking Change
Impact Score: 7/10
Vitest v0.34.0 โ Release Notes & Engineering Impact
Source available โ automated, not human-reviewed
Component: vitest ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.
Analysis updated: 2026-11-01.
Breaking-change evidence from the source
๐จ Breaking Changes - Transform mode affects only test files, not regular files - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/3491 [<samp>(9608b)</samp>](https://github.com/vitest-dev/vitest/commit/9608bf72)
โก Executive Summary (TL;DR)
Vitest v0.34.0. Source highlight: ๐จ Breaking Changes
Who Does This Impact? (Role-Based Analysis)
๐ป Software Engineers & Devs
Check the source notes against the package and APIs you use before upgrading.
๐ Product & Engineering Leads
Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.
โ๏ธ DevOps & Security
Verify the target version, runtime requirements and rollback procedure in the official documentation.
โ ๏ธ Breaking Changes & Deprecations (1)
- ๐จ Breaking Changes - Transform mode affects only test files, not regular files - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/3491 [<samp>(9608b)</samp>](https://github.com/vitest-dev/vitest/commit/9608bf72)
โจ New Features & Capabilities (6)
- Introduce `server` option - by @fenghan34 and @sheremet-va in https://github.com/vitest-dev/vitest/issues/3725 <samp>(dc4fa)</samp>
- Add preact example, remove optimizer experimental status, enable by default - by @sheremet-va and @eryue0220 in https://github.com/vitest-dev/vitest/issues/3854 <samp>(4b946)</samp>
- Support `describe.sequential` - by @fenghan34 and @dammy001 in https://github.com/vitest-dev/vitest/issues/3771 <samp>(86934)</samp>
- Support config junit reporter className with env - by @InfiniteXyy in https://github.com/vitest-dev/vitest/issues/3808 <samp>(e8bc4)</samp>
- Running vitest with `--related --watch` reruns non-affected tests if they were changed during a run - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/3844 <samp>(c9aea)</samp>
- This option was introduced to support aliasing inside external packages. Please, use `deps.optimizer.web` instead. If you test Node.js applications, consider adding external packages to `server.deps.inline`.
โก Performance & Enhancements (1)
- Deprecate deps.registerNodeLoader - by @sheremet-va <samp>(7f45b)</samp>
๐ง Bug Fixes & Patches (6)
- Isolate workers between envs and workspaces - by @AriPerkkio <samp>(ed4e0)</samp>
- Modify condition - by @btea <samp>(a78e6)</samp>
- Module Graph view is blocking the Console view - by @g4rry420 <samp>(3b5f9)</samp>
- Port the latest `defineConfig` type from vite - by @sodatea in https://github.com/vitest-dev/vitest/issues/3804 <samp>(9c8e3)</samp>
- Don't overwrite Node.js URL global - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/3828 <samp>(cdab4)</samp>
- ForceRerunTriggers correctly triggers a rerun - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/3829 <samp>(17988)</samp>
๐ View Raw Release Notes (Original Developer Log)
### ๐จ Breaking Changes
- Transform mode affects only test files, not regular files - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/3491 [<samp>(9608b)</samp>](https://github.com/vitest-dev/vitest/commit/9608bf72)
- `transformMode` is now moved to `server.transformMode`. This option is highly discouraged to use. If you need to change the transform mode, use the new option `testTransformMode` instead to control the mode based on the running test, not the current file path. By default, tests with `jsdom` or `happy-dom` use `web` transform mode, and tests using `node` or `edge` environment use `ssr` mode. If you have a custom environment, it should provide `transformMode` property.
- Custom environment now should be processed before Vitest can consume it. It means that you cannot specify a path to a TS file or use import paths that should be processed by Vite.
- Disable `coverage.reportOnFailure` by default - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/3615 [<samp>(0c6f6)</samp>](https://github.com/vitest-dev/vitest/commit/0c6f624f)
- Remove `@vitest/coverage-c8` package - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/3614 [<samp>(a90d6)</samp>](https://github.com/vitest-dev/vitest/commit/a90d64fe)
- `@vitest/coverage-c8` is no longer supported. Please, use `@vitest/coverage-v8` instead.
- Support running tests using VM context - by @sheremet-va and @dammy001 in https://github.com/vitest-dev/vitest/issues/3203 [<samp>(b0929)</samp>](https://github.com/vitest-dev/vitest/commit/b0929852)
- To address speed issues in some applications, Vitest now provides `experimentalVmThreads` pool to run your tests using VM Sandboxes environment. Make sure you understand [all pitfalls](https://vitest.dev/config/#experimentalvmthreads) of this pool before opening an issue.
- Introduce `server` option - by @fenghan34 and @sheremet-va in https://github.com/vitest-dev/vitest/issues/3725 [<samp>(dc4fa)</samp>](https://github.com/vitest-dev/vitest/commit/dc4faf64)
- Most of `deps.` options are now moved to `server.deps` with a deprecation warning. Please, consider using `deps.optimizer` instead of `deps.inline`/`deps.external`. Ideally, we would like to move away from using `server.deps.inline` altogether.
- **vite-node**: Make CLI arguments parsing behavior consistent with node/tsx/ts-node - by @rxliuli in https://github.com/vitest-dev/vitest/issues/3574 [<samp>(1cd4e)</samp>](https://github.com/vitest-dev/vitest/commit/1cd4eb0f)
- You now have to provide CLI arguments before the entry point. For example, instead of `vite-node index.ts --watch`, you now have to do `vite-node --watch index.ts`.
- Add preact example, remove optimizer experimental status, enable by default - by @sheremet-va and @eryue0220 in https://github.com/vitest-dev/vitest/issues/3854 [<samp>(4b946)</samp>](https://github.com/vitest-dev/vitest/commit/4b946ca9)
- `deps.optimizer` is now enabled by default. This means that Vitest will bundle specified dependencies before running your tests. This field inherits options from `optimizeDeps` and `ssr.optimizeDeps` which are populated by other plugins (like, Svelte).
### ๐ Features
- Support `describe.sequential` - by @fenghan34 and @dammy001 in https://github.com/vitest-dev/vitest/issues/3771 [<samp>(86934)</samp>](https://github.com/vitest-dev/vitest/commit/8693449b)
- Support config junit reporter className with env - by @InfiniteXyy in https://github.com/vitest-dev/vitest/issues/3808 [<samp>(e8bc4)</samp>](https://github.com/vitest-dev/vitest/commit/e8bc46b6)
- Running vitest with `--related --watch` reruns non-affected tests if they were changed during a run - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/3844 [<samp>(c9aea)</samp>](https://github.com/vitest-dev/vitest/commit/c9aeac4c)
### ๐ Bug Fixes
- Isolate workers between envs and workspaces - by @AriPerkkio [<samp>(ed4e0)</samp>](https://github.com/vitest-dev/vitest/commit/ed4e0424)
- Modify condition - by @btea [<samp>(a78e6)</samp>](https://github.com/vitest-dev/vitest/commit/a78e6bd0)
- Module Graph view is blocking the Console view - by @g4rry420 [<samp>(3b5f9)</samp>](https://github.com/vitest-dev/vitest/commit/3b5f96bc)
- Port the latest `defineConfig` type from vite - by @sodatea in https://github.com/vitest-dev/vitest/issues/3804 [<samp>(9c8e3)</samp>](https://github.com/vitest-dev/vitest/commit/9c8e3083)
- Don't overwrite Node.js URL global - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/3828 [<samp>(cdab4)</samp>](https://github.com/vitest-dev/vitest/commit/cdab4651)
- ForceRerunTriggers correctly triggers a rerun - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/3829 [<samp>(17988)</samp>](https://github.com/vitest-dev/vitest/commit/17988e51)
- **browser**:
- Don't inline magic-string and estree-walker - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/3726 [<samp>(ee937)</samp>](https://github.com/vitest-dev/vitest/commit/ee93762a)
- Multi-suite coverage - by @elby22 in https://github.com/vitest-dev/vitest/issues/3806 [<samp>(5de9a)</samp>](https://github.com/vitest-dev/vitest/commit/5de9af26)
- **core**:
- DataView comparison does not work in `toStrictEqual` - by @Dunqing [<samp>(52aef)</samp>](https://github.com/vitest-dev/vitest/commit/52aef92e)
- **coverage**:
- V8 provider to pick source maps without url query params - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/3784 [<samp>(280e6)</samp>](https://github.com/vitest-dev/vitest/commit/280e6745)
- Update `istanbul-lib-instrument` to v6 to fix vulnerable dependency - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/3814 [<samp>(f3bd9)</samp>](https://github.com/vitest-dev/vitest/commit/f3bd9102)
- Exclude vite virtual modules by default - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/3794 [<samp>(3c851)</samp>](https://github.com/vitest-dev/vitest/commit/3c851872)
- **node**:
- Guard error info - by @btea [<samp>(88b39)</samp>](https://github.com/vitest-dev/vitest/commit/88b39758)
- **vite-node**:
- Always treat node_modules as modulesDirectory - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/3830 [<samp>(51ab8)</samp>](https://github.com/vitest-dev/vitest/commit/51ab8d6c)
- Normalize drive letter to keep the same reference to a module - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/3836 [<samp>(45521)</samp>](https://github.com/vitest-dev/vitest/commit/45521859)
- Correctly resolve hmr filepath - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/3834 [<samp>(711a6)</samp>](https://github.com/vitest-dev/vitest/commit/711a6249)
- **watch**:
- Clear screen on all terminals - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/3661 [<samp>(8bd26)</samp>](https://github.com/vitest-dev/vitest/commit/8bd26b01)
### ๐ Performance
- Deprecate deps.registerNodeLoader - by @sheremet-va [<samp>(7f45b)</samp>](https://github.com/vitest-dev/vitest/commit/7f45bf2d)
- This option was introduced to support aliasing inside external packages. Please, use `deps.optimizer.web` instead. If you test Node.js applications, consider adding external packages to `server.deps.inline`.
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v0.33.0...v0.34.0)