[go-每日一库] go-gin项目使用realize实现代码、文件改动热更新
之前用django编写web应用时,每次保存,django应用都是重新加载-热更新,最近在写gin应用,了解到golang常用的热更新可以用到fresh/gin/gowatch/bee/realize/air等,本文主要分享realize的热更新应用。
realize
举个例子,有个叫demo的gin web项目,首先是下载realize:
go get github.com/oxequa/realize # realize这个开源项目有点老了,官方4年都没有维护,但依然比gin(与web框架不同的gin),在go get时注意在go.mod中添加下面一行: # replace gopkg.in/urfave/cli.v2 => github.com/urfave/cli/v2 v2.2.0 go install github.com/oxequa/realize
.realize.yaml
在安装了realize cmd后,可以直接使用realize init
完成realize初始化,或者比较常用的可以参考官方的文档,编写自己的yaml配置文件,以下以.realize.yaml
做后续分享。
settings: files: # 日志记录文件设置 outputs: status: false path: "" name: .r.outputs.log logs: status: false path: "" name: .r.logs.log errors: status: false path: "" name: .r.errors.log legacy: force: false # 是否强制轮询,最好设置为true interval: 100ms # 轮询间隔,可设为10s || 100ms server: status: true # 是否监听服务 open: false # 运行时是否打开浏览器 port: 8080 # 监听端口,根据app server的监听端口来设置 host: http://localhost # 监听地址/主机 schema: - name: server # 项目名称 path: D:\go_dev\src\server # 项目路径 # args: # run传入参数 # - --key1=value1 # - --key2=value2 commands: # 支持的go命令,go run/go build/go install run: status: true install: status: true build: status: false args: - -race method: gb build watcher: # 监视文件 extensions: # 监视.go/.yaml文件 - go - yaml paths: # 监视的目录 - / ignore: # 忽略某些文件 paths: # 忽略文件目录名 - .git - .realize - vendor - logs scripts: # 执行脚本 - command: tskill server # 重载时杀掉应用,win: tskill process_name || linux/macos: pkill process_name type: before # 执行脚本时机,这里设置启动前
项目使用
回到项目主目录,首先realize add
,然后realize start
即可启动项目,可以修改监听项中的go文件或者yaml文件,就可以看到realize确实重新加载编译了应用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2021-12-05 0463-岛屿的周长
2021-12-05 0132-分割回文串II
2021-12-05 0005-最长回文子串
2021-12-05 0516-最长回文子序列
2021-12-05 0647-回文子串
2021-12-05 0072-编辑距离
2021-12-05 0583-两个字符串的删除