go的代码热重载
背景
go的web开发中,经常会不断修改代码,而后手动重启服务器的情况,此时需要一个热重载的工具.
介绍
热重载通常英语称为 hot reload 或 live reload
- air(维护中)
- realize(曾经也有不少星星,现在已经停止开发)
- gin(恰好与gin框架同名,已经不再维护)
- fresh(两年前更新过,星星数不少,与martini兼容)
air
渊源
作者使用gin框架开发应用,发现缺少热重载工具.
试用了fresh后发现并不灵活.
安装
1 | go get -u github.com/cosmtrek/air |
使用
到有 main.go
的文件目录下,
运行
1 | air |
默认情况下会在当前目录下新建一个tmp文件夹用于存放编译好的二进制文件.
配置
使用
1 | air init |
会产生一个默认配置文件,可以修改其中的内容.
比如配置
1 | [misc] |
就会在结束运行后删除tmp文件夹
debug
air暂时没有dry-run模式,但其拥有debug模式,能够显示监测到了哪些文件的变化.
方便诊断与配置
与emacs的兼容性
模型情况下,emacs的占位文件 .#xxx.go
会被air监测到,以至于修改文件后会立即出发air重启应用.
配置文件中定义
1 | [build] |
即可