File tree Expand file tree Collapse file tree 2 files changed +21
-7
lines changed
Expand file tree Collapse file tree 2 files changed +21
-7
lines changed Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ import bunAdapter from "@hono/vite-dev-server/bun";
66import nodeAdapter from "@hono/vite-dev-server/node" ;
77import type { Config as ReactRouterConfig } from "@react-router/dev/config" ;
88import type { Plugin , UserConfig } from "vite" ;
9+ import { getReactVersion } from "./helpers" ;
910import type { Runtime } from "./types/runtime" ;
1011
1112type MetaEnv < T > = {
@@ -77,7 +78,7 @@ export function reactRouterHonoServer(options: ReactRouterHonoServerPluginOption
7778 ` ;
7879 }
7980 } ,
80- config ( config ) {
81+ async config ( config ) {
8182 pluginConfig = resolvePluginConfig ( config , options ) ;
8283
8384 if ( ! pluginConfig ) {
@@ -120,15 +121,20 @@ export function reactRouterHonoServer(options: ReactRouterHonoServerPluginOption
120121 reactRouterBuildFile = "assets/server-build.js" ;
121122 }
122123
124+ let alias = undefined ;
125+
126+ if ( runtime === "cloudflare" ) {
127+ const reactVersion = await getReactVersion ( ) ;
128+
129+ alias = {
130+ "react-dom/server" : reactVersion >= 19 ? "react-dom/server.edge" : "react-dom/server.browser" ,
131+ } ;
132+ }
133+
123134 return {
124135 ...baseConfig ,
125136 resolve : {
126- alias :
127- runtime === "cloudflare"
128- ? {
129- "react-dom/server" : "react-dom/server.browser" ,
130- }
131- : undefined ,
137+ alias,
132138 } ,
133139 build : {
134140 // https://vite.dev/config/build-options#build-target
Original file line number Diff line number Diff line change @@ -166,3 +166,11 @@ export async function importBuild(): Promise<ServerBuild> {
166166export function createGetLoadContext ( getLoadContext : HonoServerOptionsBase < Env > [ "getLoadContext" ] ) {
167167 return getLoadContext ;
168168}
169+
170+ /**
171+ * Retrieves the major React version from node_modules
172+ */
173+ export async function getReactVersion ( ) {
174+ const reactVersion = await import ( "react" ) ;
175+ return Number . parseInt ( reactVersion ?. version . split ( "." ) [ 0 ] ) ;
176+ }
You can’t perform that action at this time.
0 commit comments