@hiogawa.bsky.social

https://github.com/hi-ogawa @vitest.dev @vite.dev contributor

This day 4 years ago I sent my first PR to @vitest.dev. Back then it was on v0.7.4 with 80K weekly downloads. After one year and +70 more PRs, @antfu.me and @erus.dev invited me to join the team. Today we are at v4.1.0 with 35M weekly downloads. Maybe in 2030 we'll have Vitest 8 with 140M downloads.

test(reporters): add outputFile tests by AriPerkkio · Pull Request #978 · vitest-dev/vitest

Adds missing test cases for outputFile configuration. I'm working on another bug fix and thought let's merge these ones first.

github.com

Nitro v3 alpha.2: 🔥 Rolldown optimized 📦 Dependencies bundled by default ⚛ React Server Components support (experimental) 🔋 Many more improvements TIP: Upgrade to the latest nitro() plugin with vite@beta (rolldown) and enjoy a seriously mind-blowing performance boost 🚀

Release v3.0.1-alpha.2 · nitrojs/nitro

🔋 This release contains many improvements since the alpha.1 release. ⏳ We took extra time to ensure everything works well by testing against real-world projects using Nitro v3. We are closer to Bet...

github.com

When using vite@8-beta with Vitest users no longer need to add magical '@preserve' keywords in their coverage ignore hints. Originally this work-around was needed due to esbuild's (intentional) lack of support for comment preserving. Oxc has built-in support for JS coverage tools' ignore hints.

Two istanbul coverage reports side-by-side. Left one titled "vite@7 + esbuild", right one "vite@8-beta + rolldown + oxc". Report on the right demonstrates how ignore hints work without @preserve keyword.

Vitest 4.0.11 adds an experimental `fsModuleCache` flag to cache module transforms between reruns. Learn more: vitest.dev/config/exper... This is an opt-in feature, please let us know how it works for you! And example of a single test file that imports a lot of files (~1500). Almost a 50% boost!

A screenshot of Vitest terminal showing the times for two runs. The first run takes 9.65s, the second run takes 5.90s.

My talk slides are available here hiroshi-talks.vercel.app/2025-10-25/1 also with source code in github.com/hi-ogawa/talks It was a great experience to talk with many awesome folks in person! Thanks @vuefes.bsky.social for the opportunity!

Inside Vitest - Test Framework Architecture Deep Dive - Slidev

hiroshi-talks.vercel.app

Vue Fes Japan@vuefes.bsky.social · 11mo ago

/ 📢Introducing a speaker at Vue Fes Japan 2025✨ \ 【Hiroshi Ogawa @hiogawa.bsky.social 】 「Inside Vitest: Test Framework Architecture Deep Dive」 Check out the session details here✅ 👉 vuefes.jp/2025/en/spea... #vuefes #vuejs

This is possible in principle though there's some limitations github.com/hi-ogawa/vit.... It turns out React Router RSC API allows overriding internal RSC requests without patching global `fetch`, Not so obvious demo, but here "server" component is accessing `window.navigator`. 😄

BildBild
dan@danabra.mov · 11mo ago

i'm really enjoying working with React Router Data mode (for quick prototyping) but i miss true RSC. however, i also don't want to introduce an actual server (yet) what i really want is for React Router RSC to have a mode where the "server" part runs on the client. like SPA mode

I wrote a proposal for improving client assets management on Vite SSR application by introducing `?assets` query import. It includes many examples to demonstrate how it can be used in various routers and frameworks setup. Feedback is appreciated! github.com/vitejs/vite/...

RFC: Client assets metadata API for SSR · vitejs vite · Discussion #20913

This proposal introduces a new API that enables server code to access client runtime assets metadata required for server-side rendering in a framework agnostic way. This feature is currently protot...

github.com

I just realized my name is on React 19.2.0 release note. Due to client reference being lazy component, it was super tricky for Vite RSC and Waku (though we ended up finding a workaround). I'm glad I was able to land my first PR on React to fix this!

Bild

Quick improvement to reduce potential confusion of "use server" on React Router RSC framework mode github.com/vitejs/vite-... Previously following "use server" is silently ignored, but this should be flagged as build error as React router inject `"use client"` for `export default` routes.

Bild

Improved the error message of invalid `server-only` and `client-only` imports on Vite RSC plugin! These "only" packages provide errors only during runtime on their own, but I didn't see any reason not to surface as build time error, so it has been included as a "plugin feature".

Bild

RSC transform utility is available from `@vitejs/plugin-rsc/transforms` since v0.4.29 (just released). github.com/vitejs/vite-... This utility was initially in `@hiogawa/transforms` but moved inside `@vitejs/plugin-rsc` for easier maintenance, and then now it became usable standalone again 😀

feat(rsc): expose `transforms` utils by hi-ogawa · Pull Request #828 · vitejs/vite-plugin-react

Description This PR exposes src/transforms/index.ts utility as @vitejs/plugin-rsc/transforms. cc @jacob-ebey $ node Welcome to Node.js v22.18.0. Type ".help" for more information. > ...

github.com

Jacob@ebey.dev · last yr.

Some cool things about this: - It uses @hiogawa.bsky.social's transforms published through the `@vitejs/plugin-rsc` package - It uses Webpack's "layers" concept heavily - The only time I had to drop out of the rsbuild APIs down to the rspack APIs was to link chunks and trigger additional passs

Inspired by Parcel, `@vitejs/plugin-rsc` recently changed `"use client"` chunking strategy and it's now optimized based on how they are imported on server. This works nicely with route created by `import.meta.glob` since it merges client components based on page usages. github.com/vitejs/vite-...

feat(rsc): ability to merge client reference chunks based on server chunk usage by hi-ogawa · Pull Request #767 · vitejs/vite-plugin-react

Description follow up to feat(rsc): ability to merge client reference chunks #766 It should be already possible on user land, but this PR adds pass more metadata to clientChunks option to do it e...

github.com

/ 📢 Vue Fes Japan 2025 – First Speakers Announced! 🔥 \ We're thrilled to welcome an amazing speaker lineup for Vue Fes Japan 2025! ➡️ Website: vuefes.jp/2025/en/spea... 🔜 More speakers coming soon! 📢 CFP opens Mon, June 2 at 12:00 PM JST 👀 Stay tuned! 🔥 #vuefes #vuejs

Vue Fes Japan 2025 - Speaker

This is one of the largest Vue.js conferences in Japan, taking place on Saturday, October 25, 2025. In addition to sessions by renowned speakers from Japan and abroad, we are planning various events s...

vuefes.jp

At this point, I'm just copying all the demos by React router team 😅, but I think this is a cool part of RSC. As long as React router API is aligned with RSC convention and Bundlers support the convention, the same demo should work. Thanks React Router and Parcel for opening up this opportunity!

I ported React Router RSC Movies demo to Vite. github.com/hi-ogawa/rsc... RSC bundler feature is encapsulated in the package `@hiogawa/vite-rsc` and React Router RSC API integration is found in `./react-router-vite`. The latter part is mostly a copy of `parcel-plugin-react-router`.

GitHub - hi-ogawa/rsc-movies

Contribute to hi-ogawa/rsc-movies development by creating an account on GitHub.

github.com

Jacob@ebey.dev · last yr.

@scriptedalchemy.bsky.social and others who want a custom bundler integration take note, it's going to be easier than ever: github.com/jacob-ebey/p...

I just updated `react-server-dom-vite` PR with css import support github.com/facebook/rea.... I'm not sure if this is a right direction, but this seems to nicely handle css code split at each client reference level and it might potentially work as "framework-less" abstraction for Vite RSC.

feat: add react-server-dom-vite by hi-ogawa · Pull Request #33152 · facebook/react

Summary As a continuation from the discussion on Jacob's PR #31768, this is a new PR to add the react-server-dom-vite package and fixtures/flight-vite. To begin with, thank you to the React tea...

github.com

This was due to Vite module factory function's +2 lines offset, which is handled internally for SSR by adding `;;` , but we need to do the same in `findSourceMapURL`. `registerServerReference` and console replay positions are now right on the spot on devtools! github.com/hi-ogawa/vit...

@hiogawa.bsky.social · last yr.

Testing a nice little RSC feature `findSourceMapURL` on Vite. It looks like this allows jumping to server actions on React dev tools. `createServerReference` is right on the spot, but `registerServerReference` seems off a few lines. I wonder if this is due to `Error.stack` behavior on Vite SSR 🤔