-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
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:26
ELIFECYCLE Command 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
workers-sdk/packages/vite-plugin-cloudflare/src/index.ts
Lines 220 to 222 in 597e07a
| 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
Type
Projects
Status