# go项目开发热更新-fresh
# 什么是热更新
代码热更新是在研发过程中,修改代码后能够实时生效。方便测试修改代码是否达到了预期的结果。
像php这样的动态语言是在运行过程中实时编译的,所以不存在热更新的问题。而像golang这样的
静态语言,由于先要编译成二进制文件才能运行。在研发过程中修改完代码后,再手动生成二进制文
件运行,这样会导致研发效率低下的问题。因此“热更新”这个词就孕育而生。所谓的代码热更新就是
在像golang这样的静态语言研发过程中,修改完代码后能够自动实现代码重新编译运行的软件服务。
# 热更新的原理
热更新的原理很简单,无非是监控指定项目下的所有文件,在文件发生改动后,自动运行编译命令和
启动命令。
# fresh的使用
# 项目地址
https://github.com/gravityblast/fresh
# 命令安装
$ go install github.com/pilu/fresh@latest
# 命令说明
# 命令
$ fresh -h
Usage of C:\Users\bingbing.fu\go\bin\fresh.exe:
-c string
config file path
# 说明
root: . // 根目录地址
tmp_path: ./tmp // 生成临时文件地址
build_name: runner-build // 编译项目名称
build_log: runner-build-errors.log // 编译项目错误日志
valid_ext: .go, .tpl, .tmpl, .html // 可用的文件后缀
no_rebuild_ext: .tpl, .tmpl, .html // 不不变异的文件后缀
ignored: assets, tmp // 忽略的监控目录
build_delay: 600 // 编译延时
colors: 1 // 编译命令行颜色
log_color_main: cyan // 主色调
log_color_build: yellow // 编译命令色调
log_color_runner: green // 运行命令色调
log_color_watcher: magenta // 监控命令色调
log_color_app: // app 色调