From 27a3126a13e55174aa05bc0eb181ebe49b7ac838 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 24 Aug 2025 19:14:46 +0900 Subject: [PATCH 1/3] refactor(rsc): add `manager.toStableId` --- packages/plugin-rsc/src/plugin.ts | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/packages/plugin-rsc/src/plugin.ts b/packages/plugin-rsc/src/plugin.ts index f081de66..2ee00e28 100644 --- a/packages/plugin-rsc/src/plugin.ts +++ b/packages/plugin-rsc/src/plugin.ts @@ -105,6 +105,10 @@ class RscPluginManager { this.clientReferenceMetaMap = sortObject(this.clientReferenceMetaMap) this.serverResourcesMetaMap = sortObject(this.serverResourcesMetaMap) } + + toStableId(id: string): string { + return normalizePath(path.relative(this.config.root, id)) + } } export type RscPluginOptions = { @@ -1081,9 +1085,7 @@ function vitePluginUseClient( referenceKey = importId } else { importId = id - referenceKey = hashString( - normalizePath(path.relative(manager.config.root, id)), - ) + referenceKey = hashString(manager.toStableId(id)) } } @@ -1156,7 +1158,7 @@ function vitePluginUseClient( serverChunk: meta.serverChunk!, }) ?? // use original module id as name by default - normalizePath(path.relative(manager.config.root, meta.importId)) + manager.toStableId(meta.importId) name = name.replaceAll('..', '__') const group = (manager.clientReferenceGroups[name] ??= []) group.push(meta) @@ -1269,11 +1271,8 @@ function vitePluginUseClient( meta.renderedExports = mod.renderedExports meta.serverChunk = (chunk.facadeModuleId ? 'facade:' : 'non-facade:') + - normalizePath( - path.relative( - manager.config.root, - chunk.facadeModuleId ?? [...chunk.moduleIds].sort()[0]!, - ), + manager.toStableId( + chunk.facadeModuleId ?? [...chunk.moduleIds].sort()[0]!, ) } } @@ -1994,9 +1993,7 @@ function vitePluginRscCss( manager, ) } else { - const key = normalizePath( - path.relative(manager.config.root, importer), - ) + const key = manager.toStableId(importer) manager.serverResourcesMetaMap[importer] = { key } return ` import __vite_rsc_assets_manifest__ from "virtual:vite-rsc/assets-manifest"; From b03178d10861bccda684687fa1ad8392d71c2e0b Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 25 Aug 2025 11:44:14 +0900 Subject: [PATCH 2/3] refactor(rsc): use toStableId for additional path normalization MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace remaining instance of normalizePath(path.relative()) pattern with toStableId method 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- packages/plugin-rsc/src/plugin.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/plugin-rsc/src/plugin.ts b/packages/plugin-rsc/src/plugin.ts index 2ee00e28..96904f6a 100644 --- a/packages/plugin-rsc/src/plugin.ts +++ b/packages/plugin-rsc/src/plugin.ts @@ -1484,7 +1484,7 @@ function vitePluginUseServer( id = cleanUrl(id) } if (manager.config.command === 'build') { - normalizedId_ = hashString(path.relative(manager.config.root, id)) + normalizedId_ = hashString(manager.toStableId(id)) } else { normalizedId_ = normalizeViteImportAnalysisUrl( manager.server.environments[serverEnvironmentName]!, From d7d76739d93759b98c40f9f5f0ff749c8754548b Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 25 Aug 2025 11:49:21 +0900 Subject: [PATCH 3/3] chore: rename --- packages/plugin-rsc/src/plugin.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/plugin-rsc/src/plugin.ts b/packages/plugin-rsc/src/plugin.ts index 96904f6a..4352f566 100644 --- a/packages/plugin-rsc/src/plugin.ts +++ b/packages/plugin-rsc/src/plugin.ts @@ -106,7 +106,7 @@ class RscPluginManager { this.serverResourcesMetaMap = sortObject(this.serverResourcesMetaMap) } - toStableId(id: string): string { + toRelativeId(id: string): string { return normalizePath(path.relative(this.config.root, id)) } } @@ -1085,7 +1085,7 @@ function vitePluginUseClient( referenceKey = importId } else { importId = id - referenceKey = hashString(manager.toStableId(id)) + referenceKey = hashString(manager.toRelativeId(id)) } } @@ -1158,7 +1158,7 @@ function vitePluginUseClient( serverChunk: meta.serverChunk!, }) ?? // use original module id as name by default - manager.toStableId(meta.importId) + manager.toRelativeId(meta.importId) name = name.replaceAll('..', '__') const group = (manager.clientReferenceGroups[name] ??= []) group.push(meta) @@ -1271,7 +1271,7 @@ function vitePluginUseClient( meta.renderedExports = mod.renderedExports meta.serverChunk = (chunk.facadeModuleId ? 'facade:' : 'non-facade:') + - manager.toStableId( + manager.toRelativeId( chunk.facadeModuleId ?? [...chunk.moduleIds].sort()[0]!, ) } @@ -1484,7 +1484,7 @@ function vitePluginUseServer( id = cleanUrl(id) } if (manager.config.command === 'build') { - normalizedId_ = hashString(manager.toStableId(id)) + normalizedId_ = hashString(manager.toRelativeId(id)) } else { normalizedId_ = normalizeViteImportAnalysisUrl( manager.server.environments[serverEnvironmentName]!, @@ -1993,7 +1993,7 @@ function vitePluginRscCss( manager, ) } else { - const key = manager.toStableId(importer) + const key = manager.toRelativeId(importer) manager.serverResourcesMetaMap[importer] = { key } return ` import __vite_rsc_assets_manifest__ from "virtual:vite-rsc/assets-manifest";