@@ -63,6 +63,7 @@ type ClientReferenceMeta = {
6363 // build only for tree-shaking unused export
6464 exportNames : string [ ]
6565 renderedExports : string [ ]
66+ groupChunkId ?: string
6667}
6768
6869type ServerRerferenceMeta = {
@@ -800,10 +801,11 @@ export default function vitePluginRsc(
800801 assert ( entry )
801802 const entryUrl = assetsURL ( entry . chunk . fileName , manager )
802803 const clientReferenceDeps : Record < string , AssetDeps > = { }
803- for ( const [ id , meta ] of Object . entries (
804- manager . clientReferenceMetaMap ,
805- ) ) {
806- const deps : AssetDeps = assetDeps [ id ] ?. deps ?? { js : [ ] , css : [ ] }
804+ for ( const meta of Object . values ( manager . clientReferenceMetaMap ) ) {
805+ const deps : AssetDeps = assetDeps [ meta . groupChunkId ! ] ?. deps ?? {
806+ js : [ ] ,
807+ css : [ ] ,
808+ }
807809 clientReferenceDeps [ meta . referenceKey ] = assetsURLOfDeps (
808810 mergeAssetDeps ( deps , entry . deps ) ,
809811 manager ,
@@ -1145,13 +1147,16 @@ function vitePluginUseClient(
11451147 // group client reference modules by `clientChunks` option
11461148 manager . clientReferenceGroups = { }
11471149 for ( const meta of Object . values ( manager . clientReferenceMetaMap ) ) {
1148- const name =
1150+ let name =
11491151 useClientPluginOptions . clientChunks ?.( meta . importId ) ||
11501152 // use original module id as name by default
11511153 normalizePath ( path . relative ( manager . config . root , meta . importId ) )
1154+ name = name . replaceAll ( '..' , '__' )
11521155 const group = ( manager . clientReferenceGroups [ name ] ??= [ ] )
11531156 group . push ( meta )
1157+ meta . groupChunkId = `\0virtual:vite-rsc/client-references/group/${ name } `
11541158 }
1159+ debug ( 'client-reference-groups' , manager . clientReferenceGroups )
11551160 for ( const [ name , metas ] of Object . entries (
11561161 manager . clientReferenceGroups ,
11571162 ) ) {
0 commit comments