用 Go 写 Web 的一大痛点就是每次写完 BUG 之后都需要结束原有进程然后重新执行,本打算用 Hammerspoon 实现一个,前几天偶然发现已有类似项目,还是用 Golang 实现,遂食用之。
安装
自然是用 Golang 式的安装方法:
go get -u github.com/cosmtrek/air
下载完成后会在$GOPATH/bin
下生成可执行文件,可使用air -v
测试是否安装成功。
食用
在项目下执行air
便会自动运行,如果提示command not found: air
请确保已经把$GOPATH/bin
目录加到系统环境变量中。
配置
虽然安装完成后可以直接食用,不过也可以对配置文件进行一些自定义设置。
首先下载文件到项目目录:
# 如果无法下载也可复制内容到本地wget https://raw.githubusercontent.com/cosmtrek/air/master/air_example.conf
然后用编辑打开:
# 以下仅列出部分配置,完成内容请参考官方对应文件# Config file for [Air](https://github.com/cosmtrek/air) in TOML format
root = "." # 工作目录tmp_dir = "tmp" # 二进制文件保存位置
[build]cmd = "go run ." # 执行命令bin = "tmp/main" # 二进制文件位置include_ext = ["go"] # 监听指定扩展名文件exclude_dir = ["assets", "tmp"] # 忽略目录include_dir = [] # 监听目录exclude_file = [] # 排除文件log = "air.log" # 日志文件,默认保存在 tmp_dir
[log]time = true # 是否显示日志时间
[misc]clean_on_exit = true # 退出时删除 tmp 目录
测试后发现,即使把 cmd 由go build
改成go run
,在每次运行时同样会在当前目录下生成 tmp 目录,如果对这个有洁癖可以在后面跟一个删除命令,当然也可以直接修改源代码。
对了,配置文件名为.air.conf
时无需指定配置。