You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fastify框架下是否有保存代码自动刷新浏览器的类似livereload方案?

Fastify 后端代码变更自动刷新浏览器实现方案

Fastify 生态有现成的工具可以实现该需求,不需要完全自行编写插件,也可以根据现有开发流程选择适配方案:

方案1:使用专用插件 fastify-livereload

该插件的实现逻辑与 Express 中的 livereload 中间件一致,会自动向服务返回的 HTML 响应中注入 livereload 客户端脚本,监听指定目录的代码变更后主动触发浏览器刷新。
操作步骤:

  • 安装开发依赖:npm install fastify-livereload --save-dev
  • 仅在开发环境注册插件即可,示例代码:
const fastify = require('fastify')()

if (process.env.NODE_ENV === 'development') {
  fastify.register(require('fastify-livereload'), {
    // 自定义监听目录、排除规则、端口等参数
    watch: ['./src'],
    port: 35729
  })
}

// 后续注册路由、启动服务的逻辑保持不变

启动服务后,修改src目录下的代码并保存,浏览器就会自动刷新。

方案2:搭配现有进程重启工具实现

如果你的开发流程已经在使用nodemon、ts-node-dev这类工具监听后端代码变更、自动重启 Node 进程,也可以直接复用 Express 的 livereload 相关中间件实现:

  • 安装依赖:npm install livereload connect-livereload @fastify/middie --save-dev
  • 注册兼容中间件即可,示例代码:
const fastify = require('fastify')()

if (process.env.NODE_ENV === 'development') {
  // 注册 Express 中间件兼容层
  await fastify.register(require('@fastify/middie'))
  // 注入 livereload 客户端脚本到HTML响应
  fastify.use(require('connect-livereload')())
  // 启动 livereload 监听服务
  require('livereload').createServer({
    watch: ['./src']
  }).watch()
}

注意:如果你的 Fastify 服务是纯 API 接口服务,没有返回前端 HTML 内容,上述自动刷新浏览器的方案不会生效,需要搭配前端项目自身的热更新能力实现页面刷新

内容的提问来源于stack exchange,提问作者Stacky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 16:30:05