windows下先生成air.exe文件,然后移动到golang的执行目录:
2.简介
air是一款基于golang开发的实时热加载工具,通过使用该工具,使得开发人员能专注于coding,而不会被编译过程打断。
项目地址: https://github.com/cosmtrek/air
截止到此前(2023年5月18日),air在github上的star数已经达到了10.3K,可见已经得到了很多同学的认可,赶紧学起来吧。
3.特性
- 彩色日志输出
- 自定义构建或二进制命令
- 支持忽略子目录
- 支持监听新目录
- 更好的构建过程
4.安装
go get -u github.com/cosmtrek/air
5.使用方法
5.1 配置初始化
首次使用时,进入项目根目录,执行air init
命令,会生成配置文件.air.toml
5.2 配置修改
air会基于上述配置文件进行监听和编译等,我们需要针对项目特点进行配置文件修改。
以下是本业务网关项目的air配置
root = "."
testdata_dir = "testdata"
tmp_dir = "tmp"
[build]
args_bin = []
bin = "main --conf conf/trpc_local.yaml"
cmd = "go build -o ./main ."
delay = 3
exclude_dir = ["assets", "tmp", "vendor", "testdata"]
exclude_file = ["docs"]
exclude_regex = ["_test.go"]
exclude_unchanged = false
follow_symlink = false
full_bin = ""
include_dir = []
include_ext = ["go", "tpl", "yaml"]
include_file = []
kill_delay = "0s"
log = "build-errors.log"
poll = false
poll_interval = 0
rerun = false
rerun_delay = 500
send_interrupt = false
stop_on_error = false
[color]
app = ""
build = "yellow"
main = "magenta"
runner = "green"
watcher = "cyan"
[log]
main_only = false
time = false
[misc]
clean_on_exit = false
[screen]
clear_on_rebuild = false
keep_scroll = true
主要改动下面几个配置项:
- include_ext
- exclude_dir
- cmd
- bin
5.3 启动
直接在项目根目录下执行air
即可
5.4 效果
pkg/delivery/trpc_delivery.go has changed
building...
running...
调试模式
如果想查看air
更详细的执行流程,可以使用-d
选项。
使用-d
选项,air
会输出非常详细的信息,可以帮助排查问题。
总结
在开发期,使用air
可以避免频繁地编译,重启。把这些都自动化了,大大地提升了开发效率。