Skip to content
Draft
Show file tree
Hide file tree
Changes from 30 commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
2356603
refactor(rsc): remove server optimizeDeps.include
hi-ogawa Aug 10, 2025
44a4bf2
wip
hi-ogawa Aug 10, 2025
238e832
wip: default import
hi-ogawa Aug 10, 2025
7d0b79e
chore: comment
hi-ogawa Aug 10, 2025
f3dac60
Revert "wip: default import"
hi-ogawa Aug 11, 2025
5c23694
fix: export default module.exports
hi-ogawa Aug 11, 2025
72d05d0
fix: warning
hi-ogawa Aug 11, 2025
f02e12f
wip: cf plugin with noDiscovery: true
hi-ogawa Aug 11, 2025
a31ce40
Merge branch 'main' into 08-11-refactor_rsc_remove_server_optimizedep…
hi-ogawa Aug 11, 2025
dcbe115
Merge branch 'main' into 08-11-refactor_rsc_remove_server_optimizedep…
hi-ogawa Aug 11, 2025
69209f2
wip
hi-ogawa Aug 11, 2025
fb86ae2
Merge branch 'main' into 08-11-refactor_rsc_remove_server_optimizedep…
hi-ogawa Aug 11, 2025
de41c1c
fix(rsc): remove non-optimized server cjs warning
hi-ogawa Aug 11, 2025
e984b2a
chore: simplify react-router cf config
hi-ogawa Aug 11, 2025
6f4dcb8
test: update
hi-ogawa Aug 11, 2025
232cde2
test: update
hi-ogawa Aug 11, 2025
c87dbc6
Merge branch '08-11-fix_rsc_remove_non-optimized_server_cjs_warning' …
hi-ogawa Aug 11, 2025
783b800
wip
hi-ogawa Aug 11, 2025
d6cc3db
Merge branch 'main' into 08-11-refactor_rsc_remove_server_optimizedep…
hi-ogawa Aug 11, 2025
3e04458
tweak
hi-ogawa Aug 11, 2025
1d4faa7
Merge branch 'main' into 08-11-refactor_rsc_remove_server_optimizedep…
hi-ogawa Aug 12, 2025
38af1a6
Merge branch 'main' into 08-11-refactor_rsc_remove_server_optimizedep…
hi-ogawa Aug 27, 2025
9b69463
Merge branch 'main' into 08-11-refactor_rsc_remove_server_optimizedep…
hi-ogawa Aug 28, 2025
fd27faf
fix: fix AsyncLocalStorage injection
hi-ogawa Aug 28, 2025
9c0a8bf
chore: unused
hi-ogawa Aug 28, 2025
944a128
chore: optimizeDeps.exclude react for cf
hi-ogawa Aug 28, 2025
657c891
Merge branch 'main' into 08-11-refactor_rsc_remove_server_optimizedep…
hi-ogawa Aug 28, 2025
6a165a2
Revert "fix: fix AsyncLocalStorage injection"
hi-ogawa Aug 28, 2025
b7444d2
Revert "chore: unused"
hi-ogawa Aug 28, 2025
4e1713a
fix: move cjs transform
hi-ogawa Aug 28, 2025
8bc73e2
Merge branch 'main' into 08-11-refactor_rsc_remove_server_optimizedep…
hi-ogawa Aug 28, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions packages/plugin-rsc/examples/react-router/cf/vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,12 @@ export default defineConfig({
},
ssr: {
optimizeDeps: {
exclude: ['react-router'],
exclude: ['react-router', 'react', 'react-dom'],
},
},
rsc: {
optimizeDeps: {
exclude: ['react-router'],
exclude: ['react-router', 'react', 'react-dom'],
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is unfortunate, but necessary anyways since react 3rd party libraries with potential "use client" cannot be optimized.

},
},
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ export default defineConfig({
},
optimizeDeps: {
include: ['turbo-stream'],
exclude: ['react', 'react-dom'],
},
},
ssr: {
Expand Down
19 changes: 1 addition & 18 deletions packages/plugin-rsc/src/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -365,15 +365,6 @@ export default function vitePluginRsc(
noExternal,
},
optimizeDeps: {
include: [
'react',
'react-dom',
'react/jsx-runtime',
'react/jsx-dev-runtime',
'react-dom/server.edge',
'react-dom/static.edge',
`${REACT_SERVER_DOM_NAME}/client.edge`,
],
exclude: [PKG_NAME],
},
},
Expand All @@ -392,14 +383,6 @@ export default function vitePluginRsc(
noExternal,
},
optimizeDeps: {
include: [
'react',
'react-dom',
'react/jsx-runtime',
'react/jsx-dev-runtime',
`${REACT_SERVER_DOM_NAME}/server.edge`,
`${REACT_SERVER_DOM_NAME}/client.edge`,
],
exclude: [PKG_NAME],
},
},
Expand Down Expand Up @@ -976,6 +959,7 @@ import.meta.hot.on("rsc:update", () => {
return code
},
),
...cjsModuleRunnerPlugin(),
{
// make `AsyncLocalStorage` available globally for React edge build (required for React.cache, ssr preload, etc.)
// https://github.com/facebook/react/blob/f14d7f0d2597ea25da12bcf97772e8803f2a394c/packages/react-server/src/forks/ReactFlightServerConfig.dom-edge.js#L16-L19
Expand Down Expand Up @@ -1008,7 +992,6 @@ import.meta.hot.on("rsc:update", () => {
? [validateImportPlugin()]
: []),
scanBuildStripPlugin({ manager }),
...cjsModuleRunnerPlugin(),
]
}

Expand Down
14 changes: 13 additions & 1 deletion packages/plugin-rsc/src/plugins/cjs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export function cjsModuleRunnerPlugin(): Plugin[] {
applyToEnvironment: (env) => env.config.dev.moduleRunnerTransform,
async transform(code, id) {
if (
id.includes('/node_modules/') &&
(id.includes('/node_modules/') || isDevCjs(id)) &&
!id.startsWith(this.environment.config.cacheDir) &&
/\b(require|exports)\b/.test(code)
) {
Expand Down Expand Up @@ -72,6 +72,10 @@ export default module.exports;
}

function extractPackageKey(id: string): string {
if (isDevCjs(id)) {
return '@vitejs/plugin-rsc'
}

// .../.yarn/cache/abc/... => abc
const yarnMatch = id.match(/\/.yarn\/cache\/([^/]+)/)
if (yarnMatch) {
Expand All @@ -89,3 +93,11 @@ function extractPackageKey(id: string): string {
}
return id
}

// this is needed only when developing package itself within pnpm workspace
function isDevCjs(id: string): boolean {
return (
!import.meta.url.includes('/node_modules/') &&
id.includes('/vendor/react-server-dom/')
)
}
Loading