Skip to content

Commit 7351e1e

Browse files
chore: fix ssr in rr7.3
1 parent 003411d commit 7351e1e

File tree

12 files changed

+174
-590
lines changed

12 files changed

+174
-590
lines changed

examples/federation/epic-stack-remote/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@
4949
"@epic-web/remember": "1.1.0",
5050
"@epic-web/totp": "2.1.1",
5151
"@mjackson/form-data-parser": "0.7.0",
52-
"@module-federation/enhanced": "^0.10.0",
53-
"@module-federation/node": "0.0.0-next-20250318025054",
54-
"@module-federation/rsbuild-plugin": "0.0.0-next-20250310194348",
52+
"@module-federation/enhanced": "0.0.0-next-20250321011937",
53+
"@module-federation/node": "0.0.0-next-20250321011937",
54+
"@module-federation/rsbuild-plugin": "0.0.0-next-20250321011937",
5555
"@nasa-gcn/remix-seo": "2.0.1",
5656
"@oslojs/crypto": "1.0.1",
5757
"@oslojs/encoding": "1.1.0",

examples/federation/epic-stack-remote/rsbuild.config.ts

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ export default defineConfig({
6363
library: {
6464
type: 'module'
6565
},
66+
shareStrategy: "loaded-first",
6667
runtime: false,
6768
exposes: {
6869
'./components/search-bar': './app/components/search-bar',
@@ -81,25 +82,16 @@ export default defineConfig({
8182
'react-router/': {
8283
singleton: true,
8384
},
84-
'react-router-dom': {
85-
singleton: true,
86-
},
8785
react: {
8886
singleton: true,
8987
},
9088
'react/': {
9189
singleton: true,
9290
},
93-
// 'react/jsx-dev-runtime': {
94-
// singleton: true,
95-
// },
96-
// 'react/jsx-runtime': {
97-
// singleton: true,
98-
// },
9991
'react-dom': {
10092
singleton: true,
10193
},
102-
'react-dom/client': {
94+
'react-dom/': {
10395
singleton: true,
10496
},
10597
}
@@ -135,10 +127,10 @@ export default defineConfig({
135127

136128
},
137129
shared: {
138-
"react-router": {
139-
singleton: true
130+
'react-router': {
131+
singleton: true,
140132
},
141-
'react-router-dom': {
133+
'react-router/': {
142134
singleton: true,
143135
},
144136
react: {
@@ -147,12 +139,6 @@ export default defineConfig({
147139
'react/': {
148140
singleton: true,
149141
},
150-
'react/jsx-dev-runtime': {
151-
singleton: true,
152-
},
153-
'react/jsx-runtime': {
154-
singleton: true,
155-
},
156142
'react-dom': {
157143
singleton: true,
158144
},
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { HttpResponse, http, type HttpHandler, bypass } from 'msw'
2+
3+
const { text } = HttpResponse
4+
5+
export const handlers: Array<HttpHandler> = [
6+
http.get('*.js', async (req) => {
7+
const f = await (await fetch(bypass(req.request.url))).text()
8+
return text(f)
9+
}),
10+
http.get('*.zip', async (req) => {
11+
const response = await fetch(bypass(req.request.url))
12+
const buffer = await response.arrayBuffer()
13+
return new Response(buffer, {
14+
status: response.status,
15+
headers: response.headers
16+
})
17+
}),
18+
]

examples/federation/epic-stack-remote/tests/mocks/index.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ import closeWithGrace from 'close-with-grace'
22
import { setupServer } from 'msw/node'
33
import { handlers as githubHandlers } from './github.ts'
44
import { handlers as resendHandlers } from './resend.ts'
5+
import { handlers as federationHandlers } from './federation.ts'
56

6-
export const server = setupServer(...resendHandlers, ...githubHandlers)
7+
export const server = setupServer(...resendHandlers, ...githubHandlers, ...federationHandlers)
78

89
server.listen({
910
onUnhandledRequest(request, print) {
@@ -14,6 +15,9 @@ server.listen({
1415
if (request.url.includes('.sentry.io')) {
1516
return
1617
}
18+
if(request.url.endsWith('.js') || request.url.endsWith('.zip')) {
19+
return;
20+
}
1721
// Print the regular MSW unhandled request warning otherwise.
1822
print.warning()
1923
},

examples/federation/epic-stack/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@
4949
"@epic-web/remember": "1.1.0",
5050
"@epic-web/totp": "2.1.1",
5151
"@mjackson/form-data-parser": "0.7.0",
52-
"@module-federation/enhanced": "^0.10.0",
53-
"@module-federation/node": "0.0.0-next-20250318025054",
54-
"@module-federation/rsbuild-plugin": "0.0.0-next-20250310194348",
52+
"@module-federation/enhanced": "0.0.0-next-20250321011937",
53+
"@module-federation/node": "0.0.0-next-20250321011937",
54+
"@module-federation/rsbuild-plugin": "0.0.0-next-20250321011937",
5555
"@nasa-gcn/remix-seo": "2.0.1",
5656
"@oslojs/crypto": "1.0.1",
5757
"@oslojs/encoding": "1.1.0",

examples/federation/epic-stack/rsbuild.config.ts

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ export default defineConfig({
3030
new ModuleFederationPlugin({
3131
name: 'host',
3232
runtime: false,
33+
shareStrategy: "loaded-first",
3334
remoteType: 'import',
3435
remotes: {
3536
remote: 'http://localhost:3001/static/js/remote.js',
@@ -41,25 +42,16 @@ export default defineConfig({
4142
'react-router/': {
4243
singleton: true,
4344
},
44-
'react-router-dom': {
45-
singleton: true,
46-
},
4745
react: {
4846
singleton: true,
4947
},
5048
'react/': {
5149
singleton: true,
5250
},
53-
// 'react/jsx-dev-runtime': {
54-
// singleton: true,
55-
// },
56-
// 'react/jsx-runtime': {
57-
// singleton: true,
58-
// },
5951
'react-dom': {
6052
singleton: true,
6153
},
62-
'react-dom/client': {
54+
'react-dom/': {
6355
singleton: true,
6456
},
6557
},
@@ -88,10 +80,10 @@ export default defineConfig({
8880
},
8981
runtimePlugins: ['@module-federation/node/runtimePlugin'],
9082
shared: {
91-
"react-router": {
83+
'react-router': {
9284
singleton: true,
9385
},
94-
'react-router-dom': {
86+
'react-router/': {
9587
singleton: true,
9688
},
9789
react: {
@@ -100,12 +92,6 @@ export default defineConfig({
10092
'react/': {
10193
singleton: true,
10294
},
103-
'react/jsx-dev-runtime': {
104-
singleton: true,
105-
},
106-
'react/jsx-runtime': {
107-
singleton: true,
108-
},
10995
'react-dom': {
11096
singleton: true,
11197
},

examples/federation/epic-stack/server/dev-build.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ async function startServer() {
1414
}
1515

1616
const bundle = await devServer.environments.node.loadBundle('app')
17+
await new Promise(resolve => setTimeout(resolve, 5000))
1718
const { createApp } = bundle
1819
const app = await createApp(devServer)
1920

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { HttpResponse, http, type HttpHandler, bypass } from 'msw'
2+
3+
const { text } = HttpResponse
4+
5+
export const handlers: Array<HttpHandler> = [
6+
http.get('*.js', async (req) => {
7+
const f = await (await fetch(bypass(req.request.url))).text()
8+
return text(f)
9+
}),
10+
http.get('*.zip', async (req) => {
11+
const response = await fetch(bypass(req.request.url))
12+
const buffer = await response.arrayBuffer()
13+
return new Response(buffer, {
14+
status: response.status,
15+
headers: response.headers
16+
})
17+
}),
18+
]

examples/federation/epic-stack/tests/mocks/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ import closeWithGrace from 'close-with-grace'
22
import { setupServer } from 'msw/node'
33
import { handlers as githubHandlers } from './github.ts'
44
import { handlers as resendHandlers } from './resend.ts'
5+
import { handlers as federationHandlers } from './federation.ts'
56

6-
export const server = setupServer(...resendHandlers, ...githubHandlers)
7+
export const server = setupServer(...resendHandlers, ...githubHandlers, ...federationHandlers)
78

89
server.listen({
910
onUnhandledRequest(request, print) {

examples/federation/epic-stack/tests/mocks/resend.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { faker } from '@faker-js/faker'
2-
import { HttpResponse, http, type HttpHandler } from 'msw'
2+
import { HttpResponse, http, type HttpHandler, bypass } from 'msw'
33
import { requireHeader, writeEmail } from './utils.ts'
44

55
const { json } = HttpResponse

0 commit comments

Comments
 (0)