dev.watchFiles
- 类型:
- 默认值:
undefined
监听指定文件和目录的变化。当文件发生变化时,可以触发页面重新加载,也可以重启 dev server 或监听构建。
paths
- 类型:
string | string[] - 默认值:
undefined
监视的文件或目录的路径,支持 glob 语法。可以是单个路径,也可以是多个路径组成的数组。
- 监听单个文件:
- 使用 glob 匹配多个文件:
- 监听多个文件路径:
Glob 模式会在 watcher 启动时展开,因此不会包含之后新建的匹配路径。如需监听启动后可能新增的文件,请改为监听其父目录。
在所有平台上,glob 模式都应使用正斜杠(/)作为路径分隔符。请勿使用 path.join() 构造 glob 模式,因为它在 Windows 上会生成反斜杠,而反斜杠在 glob 语法中会被解释为转义符。
请使用字符串字面量或 path.posix.join() 构造相对 glob 模式。
events
- 类型:
('add' | 'change' | 'unlink')[] - 默认值:
['add', 'change', 'unlink']
指定触发对应操作的文件事件:
add:监听范围内检测到文件。默认仅对 watcher 启动后新增的文件触发;将options.ignoreInitial设为false时,启动时已存在的文件也会触发该事件。change:监听范围内的文件发生变更。unlink:监听范围内的文件被删除。
例如,只在目录中新增或移除文件时触发重启:
type
- 类型:
'reload-page' | 'restart' | 'reload-server' - 默认值:
'reload-page'
指定当文件发生变化时,是触发页面重新加载,还是重启 dev server 或监听构建。
reload-page
reload-page 表示当监听文件发生 events 指定的事件时,浏览器中的页面会自动重新加载。默认情况下,新增、修改和删除都会触发重新加载。如果未明确指定 type,Rsbuild 默认采用 reload-page。
这可以用于监听一些静态资源文件的变化,例如 public 目录 下的文件。
如果 dev.hmr 和 dev.liveReload 都设置为
false,则页面将不会自动重新加载。
restart
restart 会在执行 rsbuild dev 时请求重启 dev server,在执行 rsbuild build --watch 时请求重启监听构建。
这可以用于监听一些变更后需要重新初始化 Rsbuild 的配置文件。
例如,你在 config 目录下维护了一些公共配置文件,例如 common.ts,你希望这些文件发生变化时重启 dev server 或监听构建:
关于配置文件自动监听及重启行为,详见配置文件监听。
reload-server
reload-server 是 restart 的废弃别名,为保证向后兼容,目前仍然支持。
options
- 类型:
ChokidarOptions - 默认值:
undefined
watchFiles 是基于 chokidar v4 实现的,你可以通过 options 传入 chokidar 的选项。
传入数组
dev.watchFiles 支持传入一个数组,这允许你同时配置不同 type 的监听器,或是为不同的目录配置不同的 watchOptions。
说明
watchFiles 不适用于监听构建依赖的文件。当 Rsbuild 构建开始时,底层的 Rspack 默认会监听所有构建依赖,当这些文件发生变化时,会触发一次新的构建。
如果你希望当某些文件变化时,不触发重新构建,可以使用 Rspack 的 watchOptions.ignored 配置项。
详见 模块热更新 - 文件监听。

