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

配置文件

  1. # Config file for [Air](https://github.com/cosmtrek/air) in TOML format
  2. # Working directory
  3. # . or absolute path, please note that the directories following must be under root.
  4. root = "."
  5. tmp_dir = "tmp"
  6. [build]
  7. # Just plain old shell command. You could use `make` as well.
  8. cmd = "go build -o ./tmp/main ."
  9. # Binary file yields from `cmd`.
  10. bin = "tmp/main"
  11. # Customize binary, can setup environment variables when run your app.
  12. full_bin = "APP_ENV=dev APP_USER=air ./tmp/main"
  13. # Watch these filename extensions.
  14. include_ext = ["go", "tpl", "tmpl", "html"]
  15. # Ignore these filename extensions or directories.
  16. exclude_dir = ["assets", "tmp", "vendor", "frontend/node_modules"]
  17. # Watch these directories if you specified.
  18. include_dir = []
  19. # Exclude files.
  20. exclude_file = []
  21. # Exclude specific regular expressions.
  22. exclude_regex = ["_test.go"]
  23. # Exclude unchanged files.
  24. exclude_unchanged = true
  25. # Follow symlink for directories
  26. follow_symlink = true
  27. # This log file places in your tmp_dir.
  28. log = "air.log"
  29. # It's not necessary to trigger build each time file changes if it's too frequent.
  30. delay = 1000 # ms
  31. # Stop running old binary when build errors occur.
  32. stop_on_error = true
  33. # Send Interrupt signal before killing process (windows does not support this feature)
  34. send_interrupt = false
  35. # Delay after sending Interrupt signal
  36. kill_delay = 500 # ms
  37. [log]
  38. # Show log time
  39. time = false
  40. [color]
  41. # Customize each part's color. If no color found, use the raw app log.
  42. main = "magenta"
  43. watcher = "cyan"
  44. build = "yellow"
  45. runner = "green"
  46. [misc]
  47. # Delete tmp directory on exit
  48. clean_on_exit = true