The Wire · Showcase
VITEPRESS 2.0 ALPHA DROPS NODE 20, TEST-UTILS FIXES EMIT MEMORY LEAK
By RepoJournal · Filed · About Vue.js
VitePress 2.0-alpha.18 is live with Node 20 support removed, while Vue's test utilities patch a critical bug that leaks emitted event history across component unmounts.
VitePress's latest alpha [1] marks a significant compatibility shift that requires attention if you're running older Node versions. The docs explicitly flag the Node 20 deprecation [2], so check your CI/CD pipeline now. On the testing front, test-utils shipped a fix [3] that clears emitted event history for child components on unmount, resolving a memory leak where descendant component events weren't properly cleaned up. This one's subtle but serious for test suites with component trees. Core Vue itself ticked forward to 3.5.39 [4], a patch release reflected in the docs. Test-utils also pulled in oxfmt 0.57.0 [5] and excluded Vite 8.1.0+ from its dependency updates [6] due to a known decorator test failure with Rolldown. The docs desk cleaned up duplicate German translations [7] and fixed several TypeScript and syntax issues across examples [8] [9] [10].
Action items
- → Test your Node 20 applications against VitePress 2.0-alpha.18 before production deployment vuejs/vitepress [plan]
- → Upgrade to latest test-utils if you're debugging unexplained memory growth in test suites vuejs/test-utils [monitor]
- → Pin Vite to 8.0.16 in test-utils until Rolldown issue resolves in 2899 vuejs/test-utils [plan]
References
- [1] v2.0.0-alpha.18 ↗ vuejs/vitepress
- [2] docs: mention dropped node 20 support in changelog vuejs/vitepress
- [3] fix: clear emitted event history for child components on unmount ↗ vuejs/test-utils
- [4] chore(deps): bump vue from 3.5.38 to 3.5.39 ↗ vuejs/docs
- [5] chore(deps): update dependency oxfmt to v0.57.0 ↗ vuejs/test-utils
- [6] chore(deps): update all non-major dependencies except vite ↗ vuejs/test-utils
- [7] docs: remove duplicate German entry in WIP languages list (#3412) vuejs/docs
- [8] fix: add self-closing slash to v-model with argument and modifier example vuejs/docs
- [9] fix: change js to ts code fence for Options API emits TypeScript example vuejs/docs
- [10] fix: replace _.debounce with debounce in stateful methods example vuejs/docs
FAQ
- What changed in Vue.js on July 7, 2026?
- VitePress 2.0-alpha.18 is live with Node 20 support removed, while Vue's test utilities patch a critical bug that leaks emitted event history across component unmounts.
- What should Vue.js teams do about it?
- Test your Node 20 applications against VitePress 2.0-alpha.18 before production deployment • Upgrade to latest test-utils if you're debugging unexplained memory growth in test suites • Pin Vite to 8.0.16 in test-utils until Rolldown issue resolves in 2899
- Which Vue.js repositories shipped on July 7, 2026?
- vuejs/vitepress, vuejs/test-utils, vuejs/docs