Skip to content

Commit 1d4faa7

Browse files
authored
Merge branch 'main' into 08-11-refactor_rsc_remove_server_optimizedeps.include
2 parents 3e04458 + 5b73cbe commit 1d4faa7

File tree

16 files changed

+121
-48
lines changed

16 files changed

+121
-48
lines changed

packages/plugin-rsc/CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
## <small>[0.4.19](https://github.com/vitejs/vite-plugin-react/compare/[email protected]@0.4.19) (2025-08-11)</small>
2+
### Bug Fixes
3+
4+
* **rsc:** fix cjs default import on module runner ([#695](https://github.com/vitejs/vite-plugin-react/issues/695)) ([c329914](https://github.com/vitejs/vite-plugin-react/commit/c329914c572473d4f09261fa0eba77484e720d2e))
5+
* **rsc:** replace `?v=` check with more robust `node_modules` detection ([#696](https://github.com/vitejs/vite-plugin-react/issues/696)) ([f0359c4](https://github.com/vitejs/vite-plugin-react/commit/f0359c4eca48ca6eb2ba98254a272949a13f149e))
6+
* **rsc:** replace non-optimized server cjs warning with debug only log ([#698](https://github.com/vitejs/vite-plugin-react/issues/698)) ([a88fb2d](https://github.com/vitejs/vite-plugin-react/commit/a88fb2ded4c8b9f42f2fee70a482615f331122f4))
7+
18
## <small>[0.4.18](https://github.com/vitejs/vite-plugin-react/compare/[email protected]@0.4.18) (2025-08-11)</small>
29
### Bug Fixes
310

packages/plugin-rsc/e2e/basic.test.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -473,6 +473,22 @@ function defineTest(f: Fixture) {
473473
'color',
474474
'rgb(255, 165, 0)',
475475
)
476+
await expectNoDuplicateServerCss(page)
477+
})
478+
479+
async function expectNoDuplicateServerCss(page: Page) {
480+
// check only manually inserted stylesheet link exists
481+
// (toHaveAttribute passes only when locator matches single element)
482+
await expect(page.locator('link[rel="stylesheet"]')).toHaveAttribute(
483+
'href',
484+
'/test-style-server-manual.css',
485+
)
486+
}
487+
488+
test('no duplicate server css', async ({ page }) => {
489+
await page.goto(f.url())
490+
await waitForHydration(page)
491+
await expectNoDuplicateServerCss(page)
476492
})
477493

478494
test('adding/removing css client @js', async ({ page }) => {
@@ -557,6 +573,7 @@ function defineTest(f: Fixture) {
557573
'color',
558574
'rgb(255, 165, 0)',
559575
)
576+
await expectNoDuplicateServerCss(page)
560577
})
561578

562579
// TODO: need a way to add/remove links on server hmr. for now, it requires a manually reload.

packages/plugin-rsc/examples/basic/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
"cf-release": "wrangler deploy"
1313
},
1414
"dependencies": {
15-
"@vitejs/plugin-rsc": "latest",
1615
"react": "^19.1.1",
1716
"react-dom": "^19.1.1"
1817
},
@@ -21,13 +20,14 @@
2120
"@types/react": "^19.1.9",
2221
"@types/react-dom": "^19.1.7",
2322
"@vitejs/plugin-react": "latest",
24-
"@vitejs/test-dep-transitive-cjs": "file:./test-dep/transitive-cjs",
25-
"@vitejs/test-dep-transitive-use-sync-external-store": "file:./test-dep/transitive-use-sync-external-store",
23+
"@vitejs/plugin-rsc": "latest",
2624
"@vitejs/test-dep-client-in-server": "file:./test-dep/client-in-server",
2725
"@vitejs/test-dep-client-in-server2": "file:./test-dep/client-in-server2",
26+
"@vitejs/test-dep-css-in-server": "file:./test-dep/css-in-server",
2827
"@vitejs/test-dep-server-in-client": "file:./test-dep/server-in-client",
2928
"@vitejs/test-dep-server-in-server": "file:./test-dep/server-in-server",
30-
"@vitejs/test-dep-css-in-server": "file:./test-dep/css-in-server",
29+
"@vitejs/test-dep-transitive-cjs": "file:./test-dep/transitive-cjs",
30+
"@vitejs/test-dep-transitive-use-sync-external-store": "file:./test-dep/transitive-use-sync-external-store",
3131
"rsc-html-stream": "^0.0.7",
3232
"tailwindcss": "^4.1.11",
3333
"vite": "^7.1.1",
File renamed without changes.

packages/plugin-rsc/examples/basic/src/routes/style-server/server.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export function TestStyleServer() {
1010
</div>
1111
<link
1212
rel="stylesheet"
13-
href="/test.css"
13+
href="/test-style-server-manual.css"
1414
precedence="test-style-server-manual"
1515
/>
1616
<div className="test-style-server-manual">test-style-server-manual</div>

packages/plugin-rsc/examples/basic/src/server.tsx

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,17 @@ export default async function handler(request: Request): Promise<Response> {
2222
nonce,
2323
})
2424
if (nonce && response.headers.get('content-type')?.includes('text/html')) {
25-
response.headers.set(
26-
'content-security-policy',
27-
`default-src 'self'; ` +
28-
// `unsafe-eval` is required during dev since React uses eval for findSourceMapURL feature
29-
`script-src 'self' 'nonce-${nonce}' ${
30-
import.meta.env.DEV ? `'unsafe-eval'` : ``
31-
} ; ` +
32-
`style-src 'self' 'nonce-${nonce}'; `,
33-
)
25+
const cspValue = [
26+
`default-src 'self';`,
27+
// `unsafe-eval` is required during dev since React uses eval for findSourceMapURL feature
28+
`script-src 'self' 'nonce-${nonce}' ${import.meta.env.DEV ? `'unsafe-eval'` : ``};`,
29+
`style-src 'self' 'nonce-${nonce}';`,
30+
// allow blob: worker for Vite server ping shared worker
31+
import.meta.hot && `worker-src 'self' blob:;`,
32+
]
33+
.filter(Boolean)
34+
.join('')
35+
response.headers.set('content-security-policy', cspValue)
3436
}
3537
return response
3638
}

packages/plugin-rsc/examples/browser-mode/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@
1010
"preview": "false && vite preview"
1111
},
1212
"dependencies": {
13-
"@vitejs/plugin-rsc": "latest",
1413
"react": "^19.1.1",
1514
"react-dom": "^19.1.1"
1615
},
1716
"devDependencies": {
1817
"@types/react": "^19.1.9",
1918
"@types/react-dom": "^19.1.7",
2019
"@vitejs/plugin-react": "latest",
20+
"@vitejs/plugin-rsc": "latest",
2121
"vite": "^7.1.1"
2222
}
2323
}

packages/plugin-rsc/examples/e2e/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
"private": true,
44
"type": "module",
55
"devDependencies": {
6-
"@vitejs/plugin-rsc": "latest",
76
"@vitejs/plugin-react": "latest",
7+
"@vitejs/plugin-rsc": "latest",
88
"babel-plugin-react-compiler": "19.1.0-rc.2"
99
}
1010
}

packages/plugin-rsc/examples/no-ssr/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@
1010
"preview": "vite preview"
1111
},
1212
"dependencies": {
13-
"@vitejs/plugin-rsc": "latest",
1413
"react": "^19.1.1",
1514
"react-dom": "^19.1.1"
1615
},
1716
"devDependencies": {
1817
"@types/react": "^19.1.9",
1918
"@types/react-dom": "^19.1.7",
2019
"@vitejs/plugin-react": "latest",
20+
"@vitejs/plugin-rsc": "latest",
2121
"vite": "^7.1.1"
2222
}
2323
}

packages/plugin-rsc/examples/react-router/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
"cf-release": "wrangler deploy -c dist/rsc/wrangler.json && wrangler deploy"
1414
},
1515
"dependencies": {
16-
"@vitejs/plugin-rsc": "latest",
1716
"react": "^19.1.1",
1817
"react-dom": "^19.1.1",
1918
"react-router": "7.7.0"
@@ -26,6 +25,7 @@
2625
"@types/react": "^19.1.9",
2726
"@types/react-dom": "^19.1.7",
2827
"@vitejs/plugin-react": "latest",
28+
"@vitejs/plugin-rsc": "latest",
2929
"tailwindcss": "^4.1.11",
3030
"vite": "^7.1.1",
3131
"vite-plugin-inspect": "^11.3.2",

0 commit comments

Comments
 (0)