air介绍
它支持以下特性:
- 彩色日志输出
- 自定义构建或二进制命令
- 支持忽略子目录
- 启动后支持监听新目录
- 更好的构建过程
air的安装
go:go get -u github.com/cosmtrek/air
linux:curl -fLo air https://git.io/linux_air
windows:curl -fLo air https://git.io/linux_air
doker:docker run -it --rm \ -w "<PROJECT>" \ -e "air_wd=<PROJECT>" \ -v $(pwd):<PROJECT> \ -p <PORT>:<APP SERVER PORT> \ cosmtrek/air -c <CONF>docker run -it --rm \ -w "/go/src/github.com/cosmtrek/hub" \ -v $(pwd):/go/src/github.com/cosmtrek/hub \ -p 9090:9090 \ cosmtrek/air
macos:curl -fLo air https://git.io/darwin_air
用法
首先进入您的项目cd /path/to/your_project
最简单的用法是运行air -c .air.toml
您可以使用运行以下命令的默认设置将配置文件初始化为当前目录。air init
在此之后,您只需运行该命令而不使用其他参数,它将使用该文件进行配置。air
配置文件
# Config file for [Air](https://github.com/cosmtrek/air) in TOML format# Working directory# . or absolute path, please note that the directories following must be under root.root = "."tmp_dir = "tmp"[build]# Just plain old shell command. You could use `make` as well.cmd = "go build -o ./tmp/main ."# Binary file yields from `cmd`.bin = "tmp/main"# Customize binary, can setup environment variables when run your app.full_bin = "APP_ENV=dev APP_USER=air ./tmp/main"# Watch these filename extensions.include_ext = ["go", "tpl", "tmpl", "html"]# Ignore these filename extensions or directories.exclude_dir = ["assets", "tmp", "vendor", "frontend/node_modules"]# Watch these directories if you specified.include_dir = []# Exclude files.exclude_file = []# Exclude specific regular expressions.exclude_regex = ["_test.go"]# Exclude unchanged files.exclude_unchanged = true# Follow symlink for directoriesfollow_symlink = true# This log file places in your tmp_dir.log = "air.log"# It's not necessary to trigger build each time file changes if it's too frequent.delay = 1000 # ms# Stop running old binary when build errors occur.stop_on_error = true# Send Interrupt signal before killing process (windows does not support this feature)send_interrupt = false# Delay after sending Interrupt signalkill_delay = 500 # ms[log]# Show log timetime = false[color]# Customize each part's color. If no color found, use the raw app log.main = "magenta"watcher = "cyan"build = "yellow"runner = "green"[misc]# Delete tmp directory on exitclean_on_exit = true
