cloudflare / cloudflare/workers-sdk
Cloudflare and Tanstack vite-plugins not working together
- Dominant language
- TypeScript
- Stars
- 4.5k
- Forks
- 1.5k
- Avg merge
- 3d 8h
- Merged PRs (30d)
- 187
Description
### What versions & operating system are you using?
System:
OS: Windows 11 10.0.26200
CPU: (12) x64 12th Gen Intel(R) Core(TM) i5-12450H
Memory: 4.34 GB / 15.71 GB
Binaries:
Node: 24.13.1 - C:\Users\kar\scoop\apps\nodejs-lts\current\node.EXE
npm: 11.8.0 - C:\Users\kar\scoop\apps\nodejs-lts\current\npm.CMD
pnpm: 11.1.1 - C:\Users\kar\scoop\shims\pnpm.EXE
bun: 1.3.9 - C:\Users\kar\scoop\shims\bun.EXE
other info:
- wrangler: 4.92.0
- OS: Windows 11
- Nodejs: 24.13.1
- @cloudflare/vite-plugin: 1.37.1
### Please provide a link to a minimal reproduction
https://github.com/0x0501/readen
### Describe the Bug
Reproduce step:
1. clone the repo:
```bash
git clone https://github.com/0x0501/readen
```
2. install dependencies:
```bash
# might need to rerun this when code is updated
git submodule update --init --recursive
pnpm install
# copy vendors dist libs to public directory
pnpm --filter @readest/readest-app setup-vendors
```
3. add `@cloudflare/vite-plugin` to `apps/readest-app/vite.config.ts`
The configuration below caused the error:
```ts
import path from "node:path";
import { cloudflare } from "@cloudflare/vite-plugin";
import { tanstackStart } from "@tanstack/react-start/plugin/vite";
import viteReact from "@vitejs/plugin-react";
import { defineConfig } from "vite";
export default defineConfig(() => {
return {
plugins: [
cloudflare({
viteEnvironment: { name: "ssr" }, // here cause the bug
}),
tanstackStart({
srcDirectory: "./src",
router: {
routesDirectory: "app",
routeFileIgnorePattern:
"(components|utils|hooks|services|context|store|types|helpers|libs)|ShareLanding.tsx|SharePage.tsx|shareRoute.ts|OpenAnnotationPage.tsx|ReaderContent.tsx|ReaderRoutePage.tsx|readerSearch.ts|not-found.tsx|render.tsx",
// Bundle all UI components (component, pending, error, notFound) for a
// route into one chunk separate from the route definition + loader.
// Reduces the per-route waterfall and shrinks the eager route shell.
codeSplittingOptions: {
defaultBehavior: [
[
"component",
"pendingComponent",
"errorComponent",
"notFoundComponent",
],
],
},
},
}),
viteReact(),
],
resolve: {
tsconfigPaths: true,
alias: [
{
find: /^@\/components\/ui\/(.*)/,
replacement: path.resolve("src/components/primitives/$1"),
},
{
find: /^@pdfjs\/(.*)/,
replacement: path.resolve("public/vendor/pdfjs/$1"),
},
{
find: /^@simplecc\/(.*)/,
replacement: path.resolve("public/vendor/simplecc/$1"),
},
{ find: /^@\/(.*)/, replacement: path.resolve("src/$1") },
{
find: "js-mdict",
replacement: path.resolve("../../packages/js-mdict/src/index.ts"),
},
],
},
build: {
sourcemap: true,
rolldownOptions: {
platform: "browser",
},
rollupOptions: {
external: ["tauri-plugin-turso", "js-mdict"],
onwarn(warning, defaultHandler) {
if (
warning.message?.includes(
"Can't resolve original location of error",
)
)
return;
defaultHandler(warning);
},
},
},
ssr: {
noExternal: ["tinycolor2"],
},
optimizeDeps: {
include: ["react", "react-dom", "fflate"],
},
};
});
```
If I remove the `cloudflare` plugin, the program is working and no bug is occurred. But I need cloudflare vite plugin to use worker bindings.
### Please provide any relevant error logs
This is the full output of running `pnpm run dev-web`:
```txt
PS E:\readen> pnpm run dev-web
$ pnpm --filter @readest/readest-app dev-web
$ dotenv -e .env.web -- vite dev
(node:27460) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
Using secrets defined in .env
VITE v8.0.13 ready in 12715 ms
➜ Local: http://localhost:5173/
➜ Network: use --host to expose
➜ Debug: http://localhost:5173/__debug
➜ press b + enter to list configured Cloudflare bindings
➜ press e + enter to open local explorer
➜ press t + enter to start tunnel
➜ press h + enter to show help
🌼 daisyUI 4.12.24
├─ ✔︎ 24 themes added https://daisyui.com/docs/themes
╰─ ❤︎ Support daisyUI project: https://opencollective.com/daisyui
TypeError: (0 , __vite_ssr_import_11__.u) is not a function
at runInRunnerObject (workers/runner-worker/index.js:107:3)
... 5 lines matching cause stack trace ...
at maybeCaptureError (workers/runner-worker/index.js:51:10) {
cause: TypeError: (0 , __vite_ssr_import_11__.u) is not a function
at runInRunnerObject (workers/runner-worker/index.js:107:3)
at async Promise.all (index 0)
at loadEntries (E:/readen/node_modules/.pnpm/@tanstack+start-server-core@1.167.30/node_modules/@tanstack/start-server-core/src/createStartHandler.ts:351:53)
at startRequestResolver (E:/readen/node_modules/.pnpm/@tanstack+start-server-core@1.167.30/node_modules/@tanstack/start-server-core/src/createStartHandler.ts:684:23)
at Object.fetch (E:/readen/node_modules/.pnpm/@tanstack+react-start@1.167_f6291eabd0fa275f3000be2506700c3c/node_modules/@tanstack/react-start/src/default-entry/server.ts:16:14)
at Object.fetch (E:/readen/node_modules/.pnpm/@tanstack+react-start@1.167_f6291eabd0fa275f3000be2506700c3c/node_modules/@tanstack/react-start/src/default-entry/server.ts:16:14)
at maybeCaptureError (workers/runner-worker/index.js:51:10) {
remote: true
},
status: 500,
statusText: undefined,
headers: undefined,
data: undefined,
body: undefined,
unhandled: true
}
➜ Tunnel closed
```
Contributor guide
Assessment
This issue has not been assessed yet.