@@ -187,6 +187,14 @@ export const reactRouterDevTools: (args?: ReactRouterViteConfig) => Plugin[] = (
187187 const appDir = cachedAppDir || "./app"
188188 const appDirName = appDir . replace ( "./" , "" )
189189
190+ // Load routes eagerly so they're available during transformation
191+ let routesLoaded = false
192+ const ensureRoutesLoaded = async ( ) => {
193+ if ( ! routesLoaded ) {
194+ routesLoaded = await loadRoutes ( )
195+ }
196+ }
197+
190198 const shouldInject = ( mode : string | undefined , include : boolean ) => mode === "development" || include
191199 const isTransformable = ( id : string ) => {
192200 const extensions = [ ".tsx" , ".jsx" , ".ts" , ".js" ]
@@ -269,7 +277,8 @@ export const reactRouterDevTools: (args?: ReactRouterViteConfig) => Plugin[] = (
269277 apply ( config ) {
270278 return shouldInject ( config . mode , includeDevtools )
271279 } ,
272- transform ( code , id ) {
280+ async transform ( code , id ) {
281+ await ensureRoutesLoaded ( )
273282 const routeId = isTransformable ( id )
274283 if ( ! routeId ) {
275284 return
@@ -283,7 +292,8 @@ export const reactRouterDevTools: (args?: ReactRouterViteConfig) => Plugin[] = (
283292 apply ( config ) {
284293 return shouldInject ( config . mode , includeServer )
285294 } ,
286- transform ( code , id ) {
295+ async transform ( code , id ) {
296+ await ensureRoutesLoaded ( )
287297 const routeId = isTransformable ( id )
288298 if ( ! routeId ) {
289299 return
@@ -297,7 +307,8 @@ export const reactRouterDevTools: (args?: ReactRouterViteConfig) => Plugin[] = (
297307 apply ( config ) {
298308 return shouldInject ( config . mode , includeServer )
299309 } ,
300- transform ( code , id ) {
310+ async transform ( code , id ) {
311+ await ensureRoutesLoaded ( )
301312 const routeId = isTransformable ( id )
302313 if ( ! routeId ) {
303314 return
0 commit comments