From a4d9c985b020fe708ef26a872f40ed5c73f5a2a8 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sat, 18 Oct 2025 13:47:55 +0900 Subject: [PATCH] feat(rsc): support non global dev runner --- packages/plugin-rsc/src/plugin.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/plugin-rsc/src/plugin.ts b/packages/plugin-rsc/src/plugin.ts index 1dd69d51a..57117c15e 100644 --- a/packages/plugin-rsc/src/plugin.ts +++ b/packages/plugin-rsc/src/plugin.ts @@ -135,6 +135,9 @@ export type RscPluginOptions = { /** @default false */ loadModuleDevProxy?: boolean + /** @default false */ + loadModuleDevRunner?: string + rscCssTransform?: false | { filter?: (id: string) => boolean } /** @@ -729,10 +732,10 @@ export default function vitePluginRsc( const source = getEntrySource(environment.config, entryName) const resolved = await environment.pluginContainer.resolveId(source) assert(resolved, `[vite-rsc] failed to resolve entry '${source}'`) - replacement = - `globalThis.__viteRscDevServer.environments[${JSON.stringify( - environmentName, - )}]` + `.runner.import(${JSON.stringify(resolved.id)})` + let runnerCode = + rscPluginOptions.loadModuleDevRunner ?? + `globalThis.__viteRscDevServer.environments.${environmentName}.runner` + replacement = runnerCode + `.import(${JSON.stringify(resolved.id)})` } else { replacement = JSON.stringify( `__vite_rsc_load_module:${this.environment.name}:${environmentName}:${entryName}`,