From 5ea70f7cd659357bcbc082799ce2bb9ded9b4e20 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Tue, 9 Sep 2025 18:55:06 +0900 Subject: [PATCH 1/2] fix(rsc): `copyPublicDir: false` for server build --- packages/plugin-rsc/src/plugin.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/plugin-rsc/src/plugin.ts b/packages/plugin-rsc/src/plugin.ts index 13b36d15..ad0004af 100644 --- a/packages/plugin-rsc/src/plugin.ts +++ b/packages/plugin-rsc/src/plugin.ts @@ -385,6 +385,7 @@ export default function vitePluginRsc( ssr: { build: { outDir: config.environments?.ssr?.build?.outDir ?? 'dist/ssr', + copyPublicDir: false, rollupOptions: { input: rscPluginOptions.entries?.ssr && { index: rscPluginOptions.entries.ssr, @@ -410,6 +411,7 @@ export default function vitePluginRsc( rsc: { build: { outDir: config.environments?.rsc?.build?.outDir ?? 'dist/rsc', + copyPublicDir: false, emitAssets: true, rollupOptions: { input: rscPluginOptions.entries?.rsc && { From eff221dbf31e7c79cabb532d06d7003c8866d14b Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Tue, 9 Sep 2025 18:59:03 +0900 Subject: [PATCH 2/2] test: e2e --- .../plugin-rsc/examples/basic/vite.config.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/plugin-rsc/examples/basic/vite.config.ts b/packages/plugin-rsc/examples/basic/vite.config.ts index fc2434f6..e51f3d2a 100644 --- a/packages/plugin-rsc/examples/basic/vite.config.ts +++ b/packages/plugin-rsc/examples/basic/vite.config.ts @@ -237,7 +237,7 @@ export default { fetch: handler }; } }, }, - testScanPlugin(), + testBuildPlugin(), ], build: { minify: false, @@ -265,7 +265,7 @@ export default { fetch: handler }; }, }) as any -function testScanPlugin(): Plugin[] { +function testBuildPlugin(): Plugin[] { const moduleIds: { name: string; ids: string[] }[] = [] return [ { @@ -294,6 +294,18 @@ function testScanPlugin(): Plugin[] { }, }, }, + { + name: 'test-copyPublicDir', + apply: 'build', + buildApp: { + order: 'post', + async handler() { + assert(fs.existsSync('dist/client/favicon.ico')) + assert(!fs.existsSync('dist/rsc/favicon.ico')) + assert(!fs.existsSync('dist/ssr/favicon.ico')) + }, + }, + }, ] }