Skip to content

Commit 61b3f3a

Browse files
authored
feat: upgrade to Vite 8, Rolldown RC5, and latest React experimental (#310)
## Upgrade to Vite 8, Rolldown RC5, and latest React experimental This PR migrates the entire framework from `rolldown-vite` 7.3.0 to the official **Vite 8.0.0-beta.15** (which integrates Rolldown natively) and updates all related dependencies. ### Key changes #### Dependency upgrades - **Vite**: `rolldown-vite@7.3.0` → `vite@8.0.0-beta.15` — all imports changed from `rolldown-vite` to `vite` - **Rolldown**: `1.0.0-beta.53` → `1.0.0-rc.5` - **React**: experimental `7dc903cd-20251203` → `ab18f33d-20260220` - **react-server-dom-webpack**: updated to matching React experimental version - All pnpm overrides updated accordingly (vite overrides, react overrides) #### Vite 8 / Rolldown API migration - `advancedChunks` → `codeSplitting` in all build configs (client, server, edge) - `inlineDynamicImports: true` → `codeSplitting: false` (edge build) - Added `rolldownOptions.checks.pluginTimings` support gated behind `ROLLDOWN_PLUGIN_TIMINGS` env var - Output filter regex updated from `rolldown-vite` to `vite` version string matching - Chunk size warning message updated to reference `codeSplitting` instead of `advancedChunks` - Backward-compatible: configs still check both `codeSplitting` and `advancedChunks` groups #### Manifest / build adjustments - Client manifest entry filtering simplified: removed `isDynamicEntry` check (only `isEntry` needed) - `create-react-server` scaffolding updated for new Vite version #### Dev server and loaders - `createServer` / `createLogger` imports migrated from `rolldown-vite` to `vite` - Hybrid evaluator and render worker updated for Vite 8 APIs - Deno loader module rewritten for compatibility - Module alias loader adjusted - Optimize-deps plugin updated #### Test and docs - Test setup (`vitestSetup.mjs`) and test dependencies updated - `tsconfig.json` path alias cleanup - Docs: micro-frontends page updated (en + ja) for Vite 8 import paths ### 27 files changed across the monorepo
1 parent 8332fa7 commit 61b3f3a

39 files changed

Lines changed: 28835 additions & 28993 deletions

.github/workflows/ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ jobs:
4242
with:
4343
files: |
4444
packages/**
45+
!packages/create-react-server/**
4546
test/**
4647
.github/workflows/ci.yml
4748

docs/src/pages/en/(pages)/framework/micro-frontends.mdx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -197,17 +197,17 @@ In development, we can use the hosting application to serve the client component
197197
export default {
198198
importMap: {
199199
imports: {
200-
react: "https://esm.sh/react@0.0.0-experimental-7dc903cd-20251203?dev",
200+
react: "https://esm.sh/react@0.0.0-experimental-ab18f33d-20260220?dev",
201201
"react/jsx-dev-runtime":
202-
"https://esm.sh/react@0.0.0-experimental-7dc903cd-20251203/jsx-dev-runtime?dev",
202+
"https://esm.sh/react@0.0.0-experimental-ab18f33d-20260220/jsx-dev-runtime?dev",
203203
"react/jsx-runtime":
204-
"https://esm.sh/react@0.0.0-experimental-7dc903cd-20251203/jsx-runtime?dev",
204+
"https://esm.sh/react@0.0.0-experimental-ab18f33d-20260220/jsx-runtime?dev",
205205
"react-dom":
206-
"https://esm.sh/react-dom@0.0.0-experimental-7dc903cd-20251203?dev",
206+
"https://esm.sh/react-dom@0.0.0-experimental-ab18f33d-20260220?dev",
207207
"react-dom/client":
208-
"https://esm.sh/react-dom@0.0.0-experimental-7dc903cd-20251203/client?dev",
208+
"https://esm.sh/react-dom@0.0.0-experimental-ab18f33d-20260220/client?dev",
209209
"react-server-dom-webpack/client.browser":
210-
"https://esm.sh/react-server-dom-webpack@0.0.0-experimental-7dc903cd-20251203/client.browser?dev",
210+
"https://esm.sh/react-server-dom-webpack@0.0.0-experimental-ab18f33d-20260220/client.browser?dev",
211211
},
212212
},
213213
};
@@ -219,15 +219,15 @@ In production, we only map `@lazarv/react-server` modules to share these with ea
219219
export default {
220220
importMap: {
221221
imports: {
222-
react: "https://esm.sh/react@0.0.0-experimental-7dc903cd-20251203",
222+
react: "https://esm.sh/react@0.0.0-experimental-ab18f33d-20260220",
223223
"react/jsx-runtime":
224-
"https://esm.sh/react@0.0.0-experimental-7dc903cd-20251203/jsx-runtime",
224+
"https://esm.sh/react@0.0.0-experimental-ab18f33d-20260220/jsx-runtime",
225225
"react-dom":
226-
"https://esm.sh/react-dom@0.0.0-experimental-7dc903cd-20251203",
226+
"https://esm.sh/react-dom@0.0.0-experimental-ab18f33d-20260220",
227227
"react-dom/client":
228-
"https://esm.sh/react-dom@0.0.0-experimental-7dc903cd-20251203/client",
228+
"https://esm.sh/react-dom@0.0.0-experimental-ab18f33d-20260220/client",
229229
"react-server-dom-webpack/client.browser":
230-
"https://esm.sh/react-server-dom-webpack@0.0.0-experimental-7dc903cd-20251203/client.browser",
230+
"https://esm.sh/react-server-dom-webpack@0.0.0-experimental-ab18f33d-20260220/client.browser",
231231
},
232232
},
233233
};

docs/src/pages/ja/(pages)/framework/micro-frontends.mdx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -143,17 +143,17 @@ CDNから開発中の依存関係を使用したい場合は、インポート
143143
export default {
144144
importMap: {
145145
imports: {
146-
react: "https://esm.sh/react@0.0.0-experimental-7dc903cd-20251203?dev",
146+
react: "https://esm.sh/react@0.0.0-experimental-ab18f33d-20260220?dev",
147147
"react/jsx-dev-runtime":
148-
"https://esm.sh/react@0.0.0-experimental-7dc903cd-20251203/jsx-dev-runtime?dev",
148+
"https://esm.sh/react@0.0.0-experimental-ab18f33d-20260220/jsx-dev-runtime?dev",
149149
"react/jsx-runtime":
150-
"https://esm.sh/react@0.0.0-experimental-7dc903cd-20251203/jsx-runtime?dev",
150+
"https://esm.sh/react@0.0.0-experimental-ab18f33d-20260220/jsx-runtime?dev",
151151
"react-dom":
152-
"https://esm.sh/react-dom@0.0.0-experimental-7dc903cd-20251203?dev",
152+
"https://esm.sh/react-dom@0.0.0-experimental-ab18f33d-20260220?dev",
153153
"react-dom/client":
154-
"https://esm.sh/react-dom@0.0.0-experimental-7dc903cd-20251203/client?dev",
154+
"https://esm.sh/react-dom@0.0.0-experimental-ab18f33d-20260220/client?dev",
155155
"react-server-dom-webpack/client.browser":
156-
"https://esm.sh/react-server-dom-webpack@0.0.0-experimental-7dc903cd-20251203/client.browser?dev",
156+
"https://esm.sh/react-server-dom-webpack@0.0.0-experimental-ab18f33d-20260220/client.browser?dev",
157157
},
158158
},
159159
};
@@ -165,15 +165,15 @@ export default {
165165
export default {
166166
importMap: {
167167
imports: {
168-
react: "https://esm.sh/react@0.0.0-experimental-7dc903cd-20251203",
168+
react: "https://esm.sh/react@0.0.0-experimental-ab18f33d-20260220",
169169
"react/jsx-runtime":
170-
"https://esm.sh/react@0.0.0-experimental-7dc903cd-20251203/jsx-runtime",
170+
"https://esm.sh/react@0.0.0-experimental-ab18f33d-20260220/jsx-runtime",
171171
"react-dom":
172-
"https://esm.sh/react-dom@0.0.0-experimental-7dc903cd-20251203",
172+
"https://esm.sh/react-dom@0.0.0-experimental-ab18f33d-20260220",
173173
"react-dom/client":
174-
"https://esm.sh/react-dom@0.0.0-experimental-7dc903cd-20251203/client",
174+
"https://esm.sh/react-dom@0.0.0-experimental-ab18f33d-20260220/client",
175175
"react-server-dom-webpack/client.browser":
176-
"https://esm.sh/react-server-dom-webpack@0.0.0-experimental-7dc903cd-20251203/client.browser",
176+
"https://esm.sh/react-server-dom-webpack@0.0.0-experimental-ab18f33d-20260220/client.browser",
177177
},
178178
},
179179
};

package.json

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -56,28 +56,28 @@
5656
"packageManager": "pnpm@10.30.1+sha512.3590e550d5384caa39bd5c7c739f72270234b2f6059e13018f975c313b1eb9fefcc09714048765d4d9efe961382c312e624572c0420762bdc5d5940cdf9be73a",
5757
"pnpm": {
5858
"overrides": {
59-
"react-click-away-listener>react": "0.0.0-experimental-7dc903cd-20251203",
60-
"react-click-away-listener>react-dom": "0.0.0-experimental-7dc903cd-20251203",
61-
"react-router-dom>react": "0.0.0-experimental-7dc903cd-20251203",
62-
"react-router-dom>react-dom": "0.0.0-experimental-7dc903cd-20251203",
63-
"react-router>react": "0.0.0-experimental-7dc903cd-20251203",
64-
"@tanstack/react-router>react": "0.0.0-experimental-7dc903cd-20251203",
65-
"@tanstack/react-router>react-dom": "0.0.0-experimental-7dc903cd-20251203",
66-
"@tanstack/react-store>react": "0.0.0-experimental-7dc903cd-20251203",
67-
"@tanstack/react-store>react-dom": "0.0.0-experimental-7dc903cd-20251203",
68-
"use-sync-external-store>react": "0.0.0-experimental-7dc903cd-20251203",
69-
"@tanstack/router-devtools>react": "0.0.0-experimental-7dc903cd-20251203",
70-
"@tanstack/router-devtools>react-dom": "0.0.0-experimental-7dc903cd-20251203",
71-
"@docsearch/react>react": "0.0.0-experimental-7dc903cd-20251203",
72-
"@uidotdev/usehooks>react": "0.0.0-experimental-7dc903cd-20251203",
73-
"@uidotdev/usehooks>react-dom": "0.0.0-experimental-7dc903cd-20251203",
74-
"@vercel/analytics>react": "0.0.0-experimental-7dc903cd-20251203",
75-
"@vercel/speed-insights>react": "0.0.0-experimental-7dc903cd-20251203",
76-
"vite": "npm:rolldown-vite@7.3.0",
77-
"vite-plugin-inspect>vite": "npm:rolldown-vite@7.3.0",
78-
"vite-plugin-svgr>vite": "npm:rolldown-vite@7.3.0",
79-
"@vitejs/plugin-react>vite": "npm:rolldown-vite@7.3.0",
80-
"@vitejs/plugin-react-swc>vite": "npm:rolldown-vite@7.3.0",
59+
"react-click-away-listener>react": "0.0.0-experimental-ab18f33d-20260220",
60+
"react-click-away-listener>react-dom": "0.0.0-experimental-ab18f33d-20260220",
61+
"react-router-dom>react": "0.0.0-experimental-ab18f33d-20260220",
62+
"react-router-dom>react-dom": "0.0.0-experimental-ab18f33d-20260220",
63+
"react-router>react": "0.0.0-experimental-ab18f33d-20260220",
64+
"@tanstack/react-router>react": "0.0.0-experimental-ab18f33d-20260220",
65+
"@tanstack/react-router>react-dom": "0.0.0-experimental-ab18f33d-20260220",
66+
"@tanstack/react-store>react": "0.0.0-experimental-ab18f33d-20260220",
67+
"@tanstack/react-store>react-dom": "0.0.0-experimental-ab18f33d-20260220",
68+
"use-sync-external-store>react": "0.0.0-experimental-ab18f33d-20260220",
69+
"@tanstack/router-devtools>react": "0.0.0-experimental-ab18f33d-20260220",
70+
"@tanstack/router-devtools>react-dom": "0.0.0-experimental-ab18f33d-20260220",
71+
"@docsearch/react>react": "0.0.0-experimental-ab18f33d-20260220",
72+
"@uidotdev/usehooks>react": "0.0.0-experimental-ab18f33d-20260220",
73+
"@uidotdev/usehooks>react-dom": "0.0.0-experimental-ab18f33d-20260220",
74+
"@vercel/analytics>react": "0.0.0-experimental-ab18f33d-20260220",
75+
"@vercel/speed-insights>react": "0.0.0-experimental-ab18f33d-20260220",
76+
"vite": "8.0.0-beta.15",
77+
"vite-plugin-inspect>vite": "8.0.0-beta.15",
78+
"vite-plugin-svgr>vite": "8.0.0-beta.15",
79+
"@vitejs/plugin-react>vite": "8.0.0-beta.15",
80+
"@vitejs/plugin-react-swc>vite": "8.0.0-beta.15",
8181
"supertest>superagent": "9.0.2",
8282
"browserslist": "4.28.1",
8383
"caniuse-lite": "1.0.30001761"

packages/create-react-server/index.mjs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,17 @@ suppressReactWarnings();
1111
import { dirname, join } from "node:path";
1212
import { fileURLToPath } from "node:url";
1313

14-
import createLogger from "@lazarv/react-server/lib/dev/create-logger.mjs";
1514
import cac from "cac";
1615

1716
(async () => {
1817
try {
18+
// Patch Vite for Deno before loading create-logger (which statically imports Vite)
19+
const { patchViteForDeno } =
20+
await import("@lazarv/react-server/lib/loader/deno.mjs");
21+
patchViteForDeno();
22+
const { default: createLogger } =
23+
await import("@lazarv/react-server/lib/dev/create-logger.mjs");
24+
1925
const cli = cac();
2026

2127
const { default: packageJson } = await import("./package.json", {

0 commit comments

Comments
 (0)