@@ -270,20 +270,64 @@ export default function vitePluginRsc(
270270 const manager = new RscPluginManager ( )
271271
272272 const buildApp : NonNullable < BuilderOptions [ 'buildApp' ] > = async ( builder ) => {
273+ const wrapLogger = ( environment : any , phase : string ) => {
274+ const originalLogger = environment . logger
275+ const wrappedLogger = {
276+ ...originalLogger ,
277+ info : ( msg : string , options ?: any ) => {
278+ // Replace generic build messages with phase-specific ones
279+ if (
280+ msg . includes ( 'building for production' ) ||
281+ msg . includes ( 'building SSR bundle for production' )
282+ ) {
283+ msg = msg . replace (
284+ / b u i l d i n g ( f o r p r o d u c t i o n | S S R b u n d l e f o r p r o d u c t i o n ) / ,
285+ `building ${ phase } ` ,
286+ )
287+ }
288+ originalLogger . info ( msg , options )
289+ } ,
290+ }
291+ environment . logger = wrappedLogger
292+ return ( ) => {
293+ environment . logger = originalLogger
294+ }
295+ }
296+
273297 // no-ssr case
274298 // rsc -> client -> rsc -> client
275299 if ( ! builder . environments . ssr ?. config . build . rollupOptions . input ) {
276300 manager . isScanBuild = true
277301 builder . environments . rsc ! . config . build . write = false
278302 builder . environments . client ! . config . build . write = false
303+ let restore = wrapLogger (
304+ builder . environments . rsc ! ,
305+ 'RSC bundle (analyze client references)' ,
306+ )
279307 await builder . build ( builder . environments . rsc ! )
308+ restore ( )
309+ restore = wrapLogger (
310+ builder . environments . client ! ,
311+ 'client bundle (analyze dependencies)' ,
312+ )
280313 await builder . build ( builder . environments . client ! )
314+ restore ( )
281315 manager . isScanBuild = false
282316 builder . environments . rsc ! . config . build . write = true
283317 builder . environments . client ! . config . build . write = true
318+ restore = wrapLogger (
319+ builder . environments . rsc ! ,
320+ 'RSC bundle for production' ,
321+ )
284322 await builder . build ( builder . environments . rsc ! )
323+ restore ( )
285324 manager . stabilize ( )
325+ restore = wrapLogger (
326+ builder . environments . client ! ,
327+ 'client bundle for production' ,
328+ )
286329 await builder . build ( builder . environments . client ! )
330+ restore ( )
287331 writeAssetsManifest ( [ 'rsc' ] )
288332 return
289333 }
@@ -292,15 +336,34 @@ export default function vitePluginRsc(
292336 manager . isScanBuild = true
293337 builder . environments . rsc ! . config . build . write = false
294338 builder . environments . ssr ! . config . build . write = false
339+ let restore = wrapLogger (
340+ builder . environments . rsc ! ,
341+ 'RSC bundle (analyze client references)' ,
342+ )
295343 await builder . build ( builder . environments . rsc ! )
344+ restore ( )
345+ restore = wrapLogger (
346+ builder . environments . ssr ! ,
347+ 'SSR bundle (analyze dependencies)' ,
348+ )
296349 await builder . build ( builder . environments . ssr ! )
350+ restore ( )
297351 manager . isScanBuild = false
298352 builder . environments . rsc ! . config . build . write = true
299353 builder . environments . ssr ! . config . build . write = true
354+ restore = wrapLogger ( builder . environments . rsc ! , 'RSC bundle for production' )
300355 await builder . build ( builder . environments . rsc ! )
356+ restore ( )
301357 manager . stabilize ( )
358+ restore = wrapLogger (
359+ builder . environments . client ! ,
360+ 'client bundle for production' ,
361+ )
302362 await builder . build ( builder . environments . client ! )
363+ restore ( )
364+ restore = wrapLogger ( builder . environments . ssr ! , 'SSR bundle for production' )
303365 await builder . build ( builder . environments . ssr ! )
366+ restore ( )
304367 writeAssetsManifest ( [ 'ssr' , 'rsc' ] )
305368 }
306369
0 commit comments