1- import {
2- defineConfig ,
3- logger ,
4- type RequestHandler ,
5- type SetupMiddlewaresContext ,
6- } from '@rsbuild/core' ;
1+ import { defineConfig , logger , type RequestHandler , type RsbuildDevServer } from '@rsbuild/core' ;
72import { pluginReact } from '@rsbuild/plugin-react' ;
83
94export const serverRender =
10- ( serverContext : SetupMiddlewaresContext ) : RequestHandler =>
5+ ( server : RsbuildDevServer ) : RequestHandler =>
116 async ( _req , res , _next ) => {
12- const indexModule = await serverContext . environments . node . loadBundle < {
7+ const indexModule = await server . environments . node . loadBundle < {
138 render : ( ) => string ;
149 } > ( 'index' ) ;
1510
1611 const markup = indexModule . render ( ) ;
1712
18- const template = await serverContext . environments . web . getTransformedHtml ( 'index' ) ;
13+ const template = await server . environments . web . getTransformedHtml ( 'index' ) ;
1914
2015 const html = template . replace ( '<!--app-content-->' , markup ) ;
2116
@@ -27,12 +22,16 @@ export const serverRender =
2722
2823export default defineConfig ( {
2924 plugins : [ pluginReact ( ) ] ,
30- dev : {
31- setupMiddlewares : [
32- ( { unshift } , serverContext ) => {
33- const serverRenderMiddleware = serverRender ( serverContext ) ;
25+ server : {
26+ setup : [
27+ ( { action, server } ) => {
28+ if ( action !== 'dev' ) {
29+ return ;
30+ }
3431
35- unshift ( async ( req , res , next ) => {
32+ const serverRenderMiddleware = serverRender ( server ) ;
33+
34+ server . middlewares . use ( async ( req , res , next ) => {
3635 if ( req . method === 'GET' && req . url === '/' ) {
3736 try {
3837 await serverRenderMiddleware ( req , res , next ) ;
0 commit comments