SuperAPI AI 工具集

bun-hot-reloading

通用与其它

查看项目

更新于 10-15 21:05

技能介绍

用途:介绍 Bun 的开发期热重载能力,帮助在开发中实现自动代码重载。

主要能力:--watch 在文件变更时重启整个进程,状态丢失,适合任意文件类型;--hot 原地重载模块,状态保留,适合 Bun.serve HTTP 服务。支持自动监听被导入的 .ts/.tsx/.js/.jsx/.json 文件。提供 import.meta.hot API:accept、accept(callback)、dispose、decline、invalidate。可结合 globalThis 在重载间保留状态,配合 server.reload、server.stop 更新或重启 HTTP 服务。另有基于 fs.watch 的自定义监听与 WebSocket 客户端刷新方案,以及 Vite HMR 集成和测试监听。

使用方式:命令行如 bun --watch run src/index.ts、bun --watch test、bun --hot run src/server.ts、bunx --bun vite;可在 package.json 的 scripts 中定义 dev、dev:server、test:watch。运行时可检测 import.meta.hot、process.env.BUN_WATCH、NODE_ENV。

限制与注意:--watch 不保留状态,需保留状态时用 --hot 或 globalThis;定时器等资源应在 dispose 回调中清理,否则造成内存泄漏;端口占用需先 await server.stop() 再重新绑定;未被 import 的文件不会被监听。文档还列出常见错误(改动未检测、状态丢失、端口占用、内存泄漏)及排查方向。