[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确实重新加载编译了应用。

posted on   进击的davis  阅读(532)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 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-两个字符串的删除

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示