使用 Air 对 Golang 项目进行实时加载

 

2020-05-25

用 Go 写 Web 的一大痛点就是每次写完 BUG 之后都需要结束原有进程然后重新执行,本打算用 Hammerspoon 实现一个,前几天偶然发现已有类似项目,还是用 Golang 实现,遂食用之。

安装

自然是用 Golang 式的安装方法:

Terminal window
1
go get -u github.com/cosmtrek/air

下载完成后会在$GOPATH/bin下生成可执行文件,可使用air -v测试是否安装成功。

食用

在项目下执行air便会自动运行,如果提示command not found: air请确保已经把$GOPATH/bin目录加到系统环境变量中。

配置

虽然安装完成后可以直接食用,不过也可以对配置文件进行一些自定义设置。

首先下载文件到项目目录:

Terminal window
1
# 如果无法下载也可复制内容到本地
2
wget https://raw.githubusercontent.com/cosmtrek/air/master/air_example.conf

然后用编辑打开:

1
# 以下仅列出部分配置,完成内容请参考官方对应文件
2
# Config file for [Air](https://github.com/cosmtrek/air) in TOML format
3
4
root = "." # 工作目录
5
tmp_dir = "tmp" # 二进制文件保存位置
6
7
[build]
8
cmd = "go run ." # 执行命令
9
bin = "tmp/main" # 二进制文件位置
10
include_ext = ["go"] # 监听指定扩展名文件
11
exclude_dir = ["assets", "tmp"] # 忽略目录
12
include_dir = [] # 监听目录
13
exclude_file = [] # 排除文件
14
log = "air.log" # 日志文件,默认保存在 tmp_dir
15
16
[log]
17
time = true # 是否显示日志时间
18
19
[misc]
20
clean_on_exit = true # 退出时删除 tmp 目录

测试后发现,即使把 cmd 由go build改成go run,在每次运行时同样会在当前目录下生成 tmp 目录,如果对这个有洁癖可以在后面跟一个删除命令,当然也可以直接修改源代码。

对了,配置文件名为.air.conf时无需指定配置。

参考