@@ -63,6 +63,7 @@ type ClientReferenceMeta = {
63
63
// build only for tree-shaking unused export
64
64
exportNames : string [ ]
65
65
renderedExports : string [ ]
66
+ groupChunkId ?: string
66
67
}
67
68
68
69
type ServerRerferenceMeta = {
@@ -800,10 +801,11 @@ export default function vitePluginRsc(
800
801
assert ( entry )
801
802
const entryUrl = assetsURL ( entry . chunk . fileName , manager )
802
803
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
+ }
807
809
clientReferenceDeps [ meta . referenceKey ] = assetsURLOfDeps (
808
810
mergeAssetDeps ( deps , entry . deps ) ,
809
811
manager ,
@@ -1145,13 +1147,16 @@ function vitePluginUseClient(
1145
1147
// group client reference modules by `clientChunks` option
1146
1148
manager . clientReferenceGroups = { }
1147
1149
for ( const meta of Object . values ( manager . clientReferenceMetaMap ) ) {
1148
- const name =
1150
+ let name =
1149
1151
useClientPluginOptions . clientChunks ?.( meta . importId ) ||
1150
1152
// use original module id as name by default
1151
1153
normalizePath ( path . relative ( manager . config . root , meta . importId ) )
1154
+ name = name . replaceAll ( '..' , '__' )
1152
1155
const group = ( manager . clientReferenceGroups [ name ] ??= [ ] )
1153
1156
group . push ( meta )
1157
+ meta . groupChunkId = `\0virtual:vite-rsc/client-references/group/${ name } `
1154
1158
}
1159
+ debug ( 'client-reference-groups' , manager . clientReferenceGroups )
1155
1160
for ( const [ name , metas ] of Object . entries (
1156
1161
manager . clientReferenceGroups ,
1157
1162
) ) {
0 commit comments