# 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 色调