@@ -220,11 +220,13 @@ export default function vitePluginRsc(
220220 } ,
221221 } ,
222222 } ,
223- // TODO: buildApp hook on v7
223+ // TODO: use buildApp hook on v7?
224224 builder : {
225225 sharedPlugins : true ,
226226 sharedConfigBuild : true ,
227227 async buildApp ( builder ) {
228+ // no-ssr case
229+ // rsc -> client -> rsc -> client
228230 if ( ! builder . environments . ssr ?. config . build . rollupOptions . input ) {
229231 isScanBuild = true
230232 builder . environments . rsc ! . config . build . write = false
@@ -253,24 +255,21 @@ export default function vitePluginRsc(
253255 return
254256 }
255257
258+ // rsc -> ssr -> rsc -> client -> ssr
256259 isScanBuild = true
257260 builder . environments . rsc ! . config . build . write = false
261+ builder . environments . ssr ! . config . build . write = false
258262 await builder . build ( builder . environments . rsc ! )
259- if ( builder . environments . ssr ?. config . build . rollupOptions . input ) {
260- builder . environments . ssr ! . config . build . write = false
261- await builder . build ( builder . environments . ssr ! )
262- }
263+ await builder . build ( builder . environments . ssr ! )
263264 isScanBuild = false
264265 builder . environments . rsc ! . config . build . write = true
266+ builder . environments . ssr ! . config . build . write = true
265267 await builder . build ( builder . environments . rsc ! )
266268 // sort for stable build
267269 clientReferenceMetaMap = sortObject ( clientReferenceMetaMap )
268270 serverResourcesMetaMap = sortObject ( serverResourcesMetaMap )
269271 await builder . build ( builder . environments . client ! )
270- if ( builder . environments . ssr ?. config . build . rollupOptions . input ) {
271- builder . environments . ssr ! . config . build . write = true
272- await builder . build ( builder . environments . ssr ! )
273- }
272+ await builder . build ( builder . environments . ssr ! )
274273 } ,
275274 } ,
276275 }
@@ -665,7 +664,8 @@ export default function vitePluginRsc(
665664 return
666665 } ,
667666 writeBundle ( ) {
668- // TODO: this doesn't happen when no-ssr build
667+ // TODO: move this to `buildApp`.
668+ // note that we already do this in buildApp for no-ssr case.
669669 if ( this . environment . name === 'ssr' ) {
670670 // output client manifest to non-client build directly.
671671 // this makes server build to be self-contained and deploy-able for cloudflare.
0 commit comments