一个独立的命令行工具,监视文件变化并自动执行指定命令。
air-verse/air
一款命令行工具,监听 Go 源码变化并自动重新编译、重启应用,用于本地开发。
- Star
- 24,088
- Fork
- 928
- 未关闭 Issue
- 14
- 最近提交
- 2个月前
这是什么?
Air 是一个用于 Go 应用开发的实时重载命令行工具。在项目根目录运行 `air` 后,源文件一有修改就会自动重新编译并重启程序,无需手动停止和再次启动。它只服务于本地开发,与生产环境的热部署无关。
行为可通过 `air init` 生成的 .air.toml 配置文件或命令行参数控制,包括自定义构建和运行命令、排除目录、运行中监听新增目录、加载 .env 文件,以及向编译后的程序传递参数。规则功能允许在文件变化时执行任意命令(如前端构建或 templ 等代码生成工具),而不必整体重新编译。可选的代理功能会在 HTML 响应中注入脚本,使浏览器在每次重新构建后自动刷新。
Air 支持通过 go install、Homebrew、Scoop、mise、安装脚本或 Docker 镜像安装,项目也可以用 `go get -tool` 将其固定为项目依赖。
核心功能
- 01文件变化时自动重新编译并重启 Go 应用
- 02通过 .air.toml 或命令行参数自定义构建和运行命令
- 03支持排除子目录,并可监听运行期间新建的目录
- 04监听规则可为静态资源或代码生成执行自定义命令
- 05可选代理在每次重新构建后自动刷新浏览器
- 06构建和运行前加载 .env 环境变量文件
适用场景
- 开发基于 gin 等框架的 Go Web 服务,保存代码后自动重启
- 在 Go 应用开发时同步执行前端构建或 templ、go generate 等代码生成步骤
- 在 Docker 容器中挂载项目目录,实现容器内的实时重载
快速上手
- 1
使用 go install 安装 Air(需要 Go 1.25 或更高版本)
go install github.com/air-verse/air@latest - 2
将 Go bin 目录加入 PATH
export PATH="$PATH:$(go env GOPATH)/bin" - 3
进入项目目录并运行 air
air
使用前须知
- README 明确说明 Air 仅用于开发环境,与生产环境热部署无关。
- 采用 GPL-3.0 许可证,这是一种 copyleft 许可证,衍生作品的分发需要开源。
标签
常见问题
- air 是什么?
- 一款命令行工具,监听 Go 源码变化并自动重新编译、重启应用,用于本地开发。 Air 是一个用于 Go 应用开发的实时重载命令行工具。在项目根目录运行 `air` 后,源文件一有修改就会自动重新编译并重启程序,无需手动停止和再次启动。它只服务于本地开发,与生产环境的热部署无关。
- air 可以免费使用吗?用的什么许可证?
- air 以 GPL-3.0 许可证开源。用于商业产品前,请先确认许可证条款。
- air 还在维护吗?
- 半年内有更新。air 最近一次提交是在 2026年8月27日。
- air 适合用来做什么?
- 开发基于 gin 等框架的 Go Web 服务,保存代码后自动重启 在 Go 应用开发时同步执行前端构建或 templ、go generate 等代码生成步骤 在 Docker 容器中挂载项目目录,实现容器内的实时重载
- air 怎么安装和运行?
- 使用 go install 安装 Air(需要 Go 1.25 或更高版本): go install github.com/air-verse/air@latest 将 Go bin 目录加入 PATH: export PATH="$PATH:$(go env GOPATH)/bin" 进入项目目录并运行 air: air
- 在哪里获取 air?
- 源代码和安装说明在 GitHub 上:https://github.com/air-verse/air
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个用 Rust 编写的命令行工具,通过一个 mise.toml 文件管理项目工具、环境变量和任务。
基于 Nix 的声明式、可复现开发环境,通过 devenv.nix 配置语言、服务和进程。
Immich 的非官方配套工具,提供批量管理人物、相册、位置和日期的功能。
基于 Go 语言的高性能 HTTP Web 框架,API 风格类似 Martini,适用于 REST API、Web 应用和微服务。
一个用 Go 编写的跨平台任务运行工具,受 Make 启发,通过 YAML 格式的 Taskfile 进行配置。