Skip to content

Air

Air 是一个用于 Go 项目开发的实时重载工具。它可以监控文件变动,并在代码修改后自动重新编译和运行项目,从而提升开发效率。以下是关于 Air 的详细介绍和使用说明。


安装 Air

1. 使用 Homebrew (MacOS/Linux)

bash
brew install air

2. 使用 Go 安装

确保安装了 Go 环境后,运行以下命令:

bash
go install github.com/cosmtrek/air@latest

安装后,air 的可执行文件会位于 $GOPATH/bin 中。如果未添加到环境变量,请手动更新 PATH

bash
export PATH=$PATH:$(go env GOPATH)/bin

初始化配置

在项目根目录运行以下命令生成配置文件:

bash
air init

生成的 .air.toml 文件示例:

toml
# 项目名称
app_name = "myapp"
# 工作目录
working_dir = "."
# 主文件名
bin = "main"
# 日志颜色
color = "true"
# 构建命令
build = "go build -o ./tmp/main"
# 运行命令
cmd = "./tmp/main"
# 包含的文件
include_ext = ["go", "tpl", "tmpl", "html"]
# 忽略的目录
exclude_dir = ["tmp", "vendor"]
# 是否支持热重载
reload = "true"
# 监控间隔 (毫秒)
interval = 500

可以根据需求修改 .air.toml 文件。


运行项目

  1. 在项目根目录运行:

    bash
    air
  2. 如果 .air.toml 配置正确,Air 会监控项目的源码文件。当检测到文件更改时,Air 会自动重新编译和运行项目。


常见用法

  1. 排除目录
    如果项目中有需要排除的目录(如测试、静态资源),可以在 exclude_dir 配置中添加:

    toml
    exclude_dir = ["vendor", "static", "test"]
  2. 指定监听的文件类型
    修改 include_ext 以监听特定文件类型:

    toml
    include_ext = ["go", "yaml", "json"]
  3. 自定义构建和运行命令
    如果需要在构建前执行自定义脚本,可以修改 buildcmd

    toml
    build = "go build -o ./bin/myapp"
    cmd = "./bin/myapp"

示例

假设有一个简单的 Go 项目,目录结构如下:

myapp/
├── main.go
├── config/
│   └── config.go
├── .air.toml

运行 air 后:

  1. 修改 main.goconfig/config.go 文件。
  2. Air 自动监测到更改,重新编译并运行项目。

问题排查

  1. 找不到 air 命令
    确保 Air 安装在 $GOPATH/bin 中,并将其路径添加到 PATH 环境变量。

  2. 配置文件不起作用
    确保 .air.toml 文件位于项目根目录,并正确配置 working_dirinclude_ext

  3. 热重载失败
    检查是否在 .air.toml 中启用了 reload = "true"


总结

Air 是一个轻量级、易用的开发工具,适用于任何 Go 项目,能极大提升开发效率。如果需要进一步自定义或扩展,可以根据项目需求调整配置文件。