Commit ed7b63c 1 parent bfcb124 commit ed7b63c Copy full SHA for ed7b63c
File tree 8 files changed +118
-6
lines changed
8 files changed +118
-6
lines changed Original file line number Diff line number Diff line change @@ -140,7 +140,13 @@ import express from 'express';
140
140
141
141
async function startDevServer() {
142
142
// Init Rsbuild
143
- const rsbuild = await createRsbuild ({});
143
+ const rsbuild = await createRsbuild ({
144
+ rsbuildConfig: {
145
+ server: {
146
+ middlewareMode: true ,
147
+ },
148
+ },
149
+ });
144
150
145
151
const app = express ();
146
152
@@ -159,7 +165,11 @@ async function startDevServer() {
159
165
}
160
166
```
161
167
162
- For detailed usage, please refer to: [ Example] ( https://github.com/rspack-contrib/rspack-examples/blob/main/rsbuild/express/server.mjs ) .
168
+ For detailed usage, please refer to:
169
+
170
+ - [ Example code] ( https://github.com/rspack-contrib/rspack-examples/blob/main/rsbuild/express/server.mjs ) .
171
+ - [ rsbuild.createDevServer] ( /api/javascript-api/instance#rsbuildcreatedevserver )
172
+ - [ server.middlewareMode] ( /config/server/middleware-mode )
163
173
164
174
### connectWebSocket
165
175
Original file line number Diff line number Diff line change @@ -50,7 +50,13 @@ import { createRsbuild } from '@rsbuild/core';
50
50
51
51
async function startCustomServer() {
52
52
const app = express ();
53
- const rsbuild = await createRsbuild ();
53
+ const rsbuild = await createRsbuild ({
54
+ rsbuildConfig: {
55
+ server: {
56
+ middlewareMode: true ,
57
+ },
58
+ },
59
+ });
54
60
const { port, middlewares } = await rsbuild .createDevServer ();
55
61
56
62
app .use (middlewares );
Original file line number Diff line number Diff line change
1
+ # server.middlewareMode
2
+
3
+ - ** Type:** ` boolean `
4
+ - ** Default:** ` false `
5
+ - ** Version:** ` >= 1.2.12 `
6
+
7
+ Whether to create Rsbuild's server in middleware mode, which is useful for integrating with other servers.
8
+
9
+ When this option is enabled, Rsbuild will not create an HTTP server. This option is usually only needed when using the JavaScript API of Rsbuild.
10
+
11
+ ## Example
12
+
13
+ A typical use case is that you want to integrate the Rsbuild server into a custom server. You can achieve this by combining ` server.middlewareMode ` and [ rsbuild.createDevServer] ( /api/javascript-api/instance#rsbuildcreatedevserver ) .
14
+
15
+ ``` ts
16
+ import { createRsbuild } from ' @rsbuild/core' ;
17
+ import express from ' express' ;
18
+
19
+ async function startDevServer() {
20
+ // Initialize Rsbuild in middleware mode
21
+ const rsbuild = await createRsbuild ({
22
+ rsbuildConfig: {
23
+ server: {
24
+ middlewareMode: true ,
25
+ },
26
+ },
27
+ });
28
+
29
+ const app = express ();
30
+
31
+ // Create Rsbuild dev server instance
32
+ const rsbuildServer = await rsbuild .createDevServer ();
33
+
34
+ // Apply Rsbuild's built-in middlewares
35
+ app .use (rsbuildServer .middlewares );
36
+ }
37
+ ```
38
+
39
+ > See [ Integrate with custom server] ( /api/javascript-api/dev-server-api#integrate-with-custom-server ) for more details.
Original file line number Diff line number Diff line change @@ -137,6 +137,7 @@ Here is the corresponding Rsbuild configuration for Vite configuration:
137
137
| server.proxy, preview.proxy | [ server.proxy] ( /config/server/proxy ) |
138
138
| server.headers, preview.headers | [ server.headers] ( /config/server/headers ) |
139
139
| server.hmr | [ dev.hmr] ( /config/dev/hmr ) , [ dev.client] ( /config/dev/client ) |
140
+ | server.middlewareMode | [ server.middlewareMode] ( /config/server/middleware-mode ) |
140
141
| build.target, build.cssTarget | [ Browserslist] ( /guide/advanced/browserslist ) |
141
142
| build.outDir, build.assetsDir | [ output.distPath] ( /config/output/dist-path ) |
142
143
| build.assetsInlineLimit | [ output.dataUriLimit] ( /config/output/data-uri-limit ) |
Original file line number Diff line number Diff line change @@ -140,7 +140,13 @@ import express from 'express';
140
140
141
141
async function startDevServer() {
142
142
// 初始化 Rsbuild
143
- const rsbuild = await createRsbuild ({});
143
+ const rsbuild = await createRsbuild ({
144
+ rsbuildConfig: {
145
+ server: {
146
+ middlewareMode: true ,
147
+ },
148
+ },
149
+ });
144
150
145
151
const app = express ();
146
152
@@ -159,7 +165,11 @@ async function startDevServer() {
159
165
}
160
166
```
161
167
162
- 完整用法可参考:[ 示例] ( https://github.com/rspack-contrib/rspack-examples/blob/main/rsbuild/express/server.mjs ) 。
168
+ 更多用法可参考:
169
+
170
+ - [ 示例代码] ( https://github.com/rspack-contrib/rspack-examples/blob/main/rsbuild/express/server.mjs ) 。
171
+ - [ rsbuild.createDevServer] ( /api/javascript-api/instance#rsbuildcreatedevserver )
172
+ - [ server.middlewareMode] ( /config/server/middleware-mode )
163
173
164
174
### connectWebSocket
165
175
Original file line number Diff line number Diff line change @@ -50,7 +50,13 @@ import { createRsbuild } from '@rsbuild/core';
50
50
51
51
async function startCustomServer() {
52
52
const app = express ();
53
- const rsbuild = await createRsbuild ();
53
+ const rsbuild = await createRsbuild ({
54
+ rsbuildConfig: {
55
+ server: {
56
+ middlewareMode: true ,
57
+ },
58
+ },
59
+ });
54
60
const { port, middlewares } = await rsbuild .createDevServer ();
55
61
56
62
app .use (middlewares );
Original file line number Diff line number Diff line change
1
+ # server.middlewareMode
2
+
3
+ - ** 类型:** ` boolean `
4
+ - ** 默认值:** ` false `
5
+ - ** 版本:** ` >= 1.2.12 `
6
+
7
+ 是否以中间件模式来创建 Rsbuild 的 server,这有助于与其他 server 集成。
8
+
9
+ 开启此选项后,Rsbuild 将不会创建 HTTP server。通常你只有在使用 Rsbuild 的 JavaScript API 时,才需要设置此选项。
10
+
11
+ ## 示例
12
+
13
+ 一个典型的使用场景是,你希望将 Rsbuild 的 server 集成到自定义的 server 中。可以结合 ` server.middlewareMode ` 和 [ rsbuild.createDevServer] ( /api/javascript-api/instance#rsbuildcreatedevserver ) 来实现。
14
+
15
+ ``` ts
16
+ import { createRsbuild } from ' @rsbuild/core' ;
17
+ import express from ' express' ;
18
+
19
+ async function startDevServer() {
20
+ // 以 middleware mode 初始化 Rsbuild
21
+ const rsbuild = await createRsbuild ({
22
+ rsbuildConfig: {
23
+ server: {
24
+ middlewareMode: true ,
25
+ },
26
+ },
27
+ });
28
+
29
+ const app = express ();
30
+
31
+ // 创建 Rsbuild dev server 实例
32
+ const rsbuildServer = await rsbuild .createDevServer ();
33
+
34
+ // 使用 Rsbuild 的内置中间件
35
+ app .use (rsbuildServer .middlewares );
36
+ }
37
+ ```
38
+
39
+ > 查看 [ 与自定义 server 集成] ( /api/javascript-api/dev-server-api#与自定义-server-集成 ) 了解更多。
Original file line number Diff line number Diff line change @@ -137,6 +137,7 @@ Rsbuild 会在构建时自动注入 `<script>` 标签到生成的 HTML 文件中
137
137
| server.proxy, preview.proxy | [ server.proxy] ( /config/server/proxy ) |
138
138
| server.headers, preview.headers | [ server.headers] ( /config/server/headers ) |
139
139
| server.hmr | [ dev.hmr] ( /config/dev/hmr ) , [ dev.client] ( /config/dev/client ) |
140
+ | server.middlewareMode | [ server.middlewareMode] ( /config/server/middleware-mode ) |
140
141
| build.target, build.cssTarget | [ Browserslist] ( /guide/advanced/browserslist ) |
141
142
| build.outDir, build.assetsDir | [ output.distPath] ( /config/output/dist-path ) |
142
143
| build.assetsInlineLimit | [ output.dataUriLimit] ( /config/output/data-uri-limit ) |
You can’t perform that action at this time.
0 commit comments