Skip to content

@vitejs/plugin-rsc build fails with @cloudflare/vite-plugin since v1.13.0 #10650

@hi-ogawa

Description

@hi-ogawa

What versions & operating system are you using?

System:
OS: Linux 6.16 Arch Linux
CPU: (16) x64 12th Gen Intel(R) Core(TM) i7-12650H
Memory: 19.84 GB / 31.05 GB
Container: Yes
Shell: 5.3.3 - /usr/bin/bash
Binaries:
Node: 22.18.0 - ~/.volta/tools/image/node/22.18.0/bin/node
npm: 10.9.3 - ~/.volta/tools/image/node/22.18.0/bin/npm
pnpm: 10.16.1 - ~/.volta/bin/pnpm
bun: 1.2.20 - ~/.local/bin/bun
npmPackages:
@cloudflare/vite-plugin: 1.13.0 => 1.13.0
wrangler: 4.36.0 => 4.36.0

Please provide a link to a minimal reproduction

https://github.com/hi-ogawa/reproductions/tree/main/vite-rsc-851-cloudflare-entry-virtual

Describe the Bug

@vitejs/plugin-rsc requires building certain environments multiple times. The build error is found in vitejs/vite-plugin-react#851. Simplified version would look like the minimal reproduction above:

{
  builder: {
    async buildApp(builder) {
      await builder.build(builder.environments.ssr!);
      await builder.build(builder.environments.ssr!);
    }
  }
}

This logic seems to have a problem with @cloudflare/vite-plugin since v1.13.0 and the error look like this:

$ pnpm build
> vite build

vite v7.1.5 building SSR bundle for production...
 2 modules transformed.
dist/ssr/.vite/manifest.json  0.16 kB
dist/ssr/wrangler.json        1.26 kB
dist/ssr/index.js             0.32 kB
 built in 33ms
vite v7.1.5 building SSR bundle for production...
 1 modules transformed.
 Build failed in 9ms
error during build:
[vite]: Rollup failed to resolve import "virtual:cloudflare/user-entry" from "virtual:cloudflare/worker-entry".
This is most likely unintended because it can break your application at runtime.
If you do want to externalize this module explicitly add it to
`build.rollupOptions.external`
    at viteLog (file:///home/hiroshi/code/personal/reproductions/vite-rsc-851-cloudflare-entry-virtual/node_modules/.pnpm/vite@7.1.5/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:34340:57)
    at onRollupLog (file:///home/hiroshi/code/personal/reproductions/vite-rsc-851-cloudflare-entry-virtual/node_modules/.pnpm/vite@7.1.5/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:34374:9)
    at onLog (file:///home/hiroshi/code/personal/reproductions/vite-rsc-851-cloudflare-entry-virtual/node_modules/.pnpm/vite@7.1.5/node_modules/vite/dist/node/chunks/dep-M_KD0XSK.js:34169:4)
    at file:///home/hiroshi/code/personal/reproductions/vite-rsc-851-cloudflare-entry-virtual/node_modules/.pnpm/rollup@4.50.2/node_modules/rollup/dist/es/shared/node-entry.js:20939:32
    at Object.logger [as onLog] (file:///home/hiroshi/code/personal/reproductions/vite-rsc-851-cloudflare-entry-virtual/node_modules/.pnpm/rollup@4.50.2/node_modules/rollup/dist/es/shared/node-entry.js:22825:9)
    at ModuleLoader.handleInvalidResolvedId (file:///home/hiroshi/code/personal/reproductions/vite-rsc-851-cloudflare-entry-virtual/node_modules/.pnpm/rollup@4.50.2/node_modules/rollup/dist/es/shared/node-entry.js:21569:26)
    at file:///home/hiroshi/code/personal/reproductions/vite-rsc-851-cloudflare-entry-virtual/node_modules/.pnpm/rollup@4.50.2/node_modules/rollup/dist/es/shared/node-entry.js:21527:26ELIFECYCLECommand failed with exit code 1.

From what I debugged so far, workerConfig.main during the 2nd build became different from the wrangler.jsonc's main field

if (source === VIRTUAL_USER_ENTRY) {
return this.resolve(workerConfig.main);
}

During the first build, console.log({ source, main: workerConfig.main }) logs

{
  source: 'virtual:cloudflare/user-entry',
  main: '/home/hiroshi/code/personal/reproductions/vite-rsc-851-cloudflare-entry-virtual/worker/index.js'
}

but during the 2nd build, it becomes

{ source: 'virtual:cloudflare/user-entry', main: 'index.js' }

Please provide any relevant error logs

No response

Metadata

Metadata

Assignees

Labels

bugSomething that isn't workingvite-pluginRelating to the `@cloudflare/vite-plugin` package

Type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions