@@ -29,6 +29,7 @@ _April 22, 2026_
2929- 更轻量:
3030 - [ 依赖数量从 14 个减少到 5 个] ( #精简依赖 )
3131- 新特性:
32+ - [ 支持开发服务器与客户端通信] ( #通信-api )
3233 - [ 支持自定义 logger] ( #支持自定义-logger )
3334
3435## Pure ESM 包
@@ -96,7 +97,7 @@ export default {
9697
9798## 默认 host 变化
9899
99- [ server.host] ( /config/server/host ) 的默认值从 ` '0.0.0.0' ` 调整为 ` 'localhost' ` 。这意味着开发和预览服务器默认仅监听本机 ,不再对局域网内的其他设备开放。
100+ [ server.host] ( /config/server/host ) 的默认值从 ` '0.0.0.0' ` 调整为 ` 'localhost' ` 。开发和预览服务器默认仅监听本机 ,不再对局域网内的其他设备开放。
100101
101102这一调整遵循「默认安全」的原则。在大多数本地开发场景中,开发服务器无需对外暴露。仅监听本机地址可以减少意外暴露,降低在共享网络环境中被扫描或攻击的风险。
102103
@@ -138,6 +139,37 @@ Rsbuild 2.0 对默认依赖进行了精简,将仅在特定场景下使用的
138139- 不再默认安装 ` @module-federation/runtime-tools ` ,在使用 [ moduleFederation.options] ( /config/module-federation/options ) 时需要手动安装,Module Federation 2.0 不受影响。
139140- 移除 ` webpack-bundle-analyzer ` 依赖,推荐使用 [ Rsdoctor] ( /guide/debug/rsdoctor ) 进行产物分析,或自行安装和注册 ` webpack-bundle-analyzer ` 。
140141
142+ ## 通信 API
143+
144+ 在支持 React Server Components 的过程中,我们发现,一些场景需要在 dev server 与浏览器之间进行通信。例如,服务端完成某些操作后,需要主动通知客户端执行对应逻辑。
145+
146+ 为此,Rsbuild 2.0 提供了一组通信 API:
147+
148+ - 服务端可通过 [ hot.send] ( /api/javascript-api/environment-api#hotsend ) 向当前 environment 对应的客户端发送消息
149+ - 客户端可通过 ` import.meta.webpackHot.on ` 监听这些自定义事件
150+
151+ 这些 API 复用了现有的 HMR 通道,无需额外创建 WebSocket 连接。同时,消息仅会发送到匹配的 environment,避免不必要的广播。
152+
153+ 例如,当服务端状态发生变化时,通知客户端更新,而不是触发整页刷新:
154+
155+ - 在服务端触发消息:
156+
157+ ``` ts title="rsbuild.config.ts"
158+ server .environments .web .hot .send (' data-change' , {
159+ count: 1 ,
160+ });
161+ ```
162+
163+ - 在客户端监听消息:
164+
165+ ``` ts title="src/dev-sync.ts"
166+ if (import .meta .webpackHot ) {
167+ import .meta .webpackHot .on (' data-change' , ({ count }) => {
168+ console .log (' data updated:' , count );
169+ });
170+ }
171+ ```
172+
141173## 支持自定义 logger
142174
143175Rsbuild 2.0 新增了 [ customLogger] ( /config/custom-logger ) 选项,用于为当前实例配置 logger。
0 commit comments