@hiogawa.bsky.social
1.1K followers 62 following 37 posts
https://github.com/hi-ogawa @vitest.dev @vite.dev contributor
Posts Media Videos Starter Packs
hiogawa.bsky.social
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!
hiogawa.bsky.social
For this use of `"use server"` to work, the route needs to be `ServerComponent` route.
hiogawa.bsky.social
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.
hiogawa.bsky.social
Forgot to mention that this means it works with Waku too (and this is actually what I tested originally) github.com/hi-ogawa/wak...
hiogawa.bsky.social
I've been experimenting with Nitro and made a plugin for `@vitejs/plugin-rsc`-based app
to be deployed anywhere. Here is an example with React Router RSC! github.com/hi-ogawa/rea...
hiogawa.bsky.social
Read the updated documentation for more info! github.com/vitejs/vite-...
It's good to know Next.js clarifies this as a "framework feature" and not package's own behavior, which I obviously referenced it when adding the doc 😀 nextjs.org/docs/app/get...
hiogawa.bsky.social
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".
hiogawa.bsky.social
Additionally, metric-based fallback font generation can be provided by just adding `fontaine` plugin github.com/unjs/fontaine/
hiogawa.bsky.social
Not as fancy as `next/font`, but simple font optimization (self hosted font + preload link) is super easy thanks to fontsource fontsource.org/docs/getting...
hiogawa.bsky.social
It may be possible to implement "use cache" like feature using `transformHoistInlineDirective`, which is exported from `@vitejs/plugin-rsc/transforms`. My minimal example is found here github.com/vitejs/vite-...
hiogawa.bsky.social
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 😀
hiogawa.bsky.social
For example, this is how it looks before and after the change on Waku website waku.gg More info in github.com/wakujs/waku/...
hiogawa.bsky.social
RSC support is now included in Vite documentation! vite.dev/plugins/#vit... It's mostly just a link to the plugin readme though. Any feedback on documentation is welcome! 🙂
hiogawa.bsky.social
Great demo! Yes, RSC should mostly work on Stackblitz but with minor caveats. Since AsyncLocalStorage is not entirely reliable, `React.cache`, `ReactDOM.preinit` etc. can do odd stuff. Another one is `TextEncoder.decode`, which can break rsc-html-stream with this edge case github.com/stackblitz/w...
hiogawa.bsky.social
Thanks for testing out! I'm reading this github.com/the-guild-or... and it looks like this is data mode setup (i.e. non framework mode). In this case, you probably don't need "react router" plugin. For this, you can take a look at example like here github.com/remix-run/re...
hiogawa.bsky.social
After I saw Qwik team's Rollup PR for merging merging `this.emitFile` chunks github.com/rollup/rollu...,
I was interested to try out the same idea for optimizing `"use client"` chunks and it looks like this works beautifully! github.com/hi-ogawa/vit...
hiogawa.bsky.social
Yup, hopefully we will be able to remove anything with `Proxy` in `react-server-dom-vite` 😅 But this use case of `createFromReadableStream` on the server was just totally new to me, so I'm not sure what's the proper solution.
hiogawa.bsky.social
I was looking at @lazarv.dev's cache decoding and that's where I found this technique github.com/lazarv/react... I haven't checked how other bundlers do this. Also I'm not sure what this means for `react-server-dom-vite` 🤔
github.com
hiogawa.bsky.social
I was also feeling weird about `createFromReadableStream` on server for bound args serialization, but we may be supposed to use `moduleMap` to re-map client reference similar to SSR. I had a failing case with client element bind, but it's fixed by a neat trick github.com/hi-ogawa/vit...
Reposted
vuefes.bsky.social

📢 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
hiogawa.bsky.social
Setting up Windows CI for the first time on my own repo github.com/hi-ogawa/vit... Someone reported React router demo is broken on Windows but it's now fixed! I was afraid this might become a nightmare CI debugging session, but it turned out it's just a usual path issue 😄
fix(rsc): support Windows by hi-ogawa · Pull Request #884 · hi-ogawa/vite-plugins
Closes @hiogawa/vite-rsc doesn't work on Windows #883
github.com