SuperAPI AI 工具集

air-go

编程与开发

查看项目

更新于 10-15 17:29

技能介绍

用途:用于 Go 开发时的热重载。Air 监视 Go 源文件,在文件变化后重新构建并重启应用,适合需要在 Web 服务器开发中获得亚秒级反馈的场景。

安装: go install github.com/air-verse/air@latest

基本用法:在项目根目录运行 air。无配置时它会监视 .go 文件、重新构建并重启。较复杂的项目应使用 .air.toml 配置。配置包含 root、tmp_dir,以及 [build] 段的 bin、cmd、delay、exclude_dir、exclude_regex、include_ext、kill_delay、send_interrupt、stop_on_error 等,[misc] 段可设 clean_on_exit。

关键设置:delay 控制文件变化后重建前等待的毫秒数;kill_delay 控制杀死旧进程后等待再启动新进程,对 SQLite/文件锁很重要;send_interrupt 在 SIGKILL 前发送 SIGINT 以优雅关闭;stop_on_error 在构建出错时不重启,避免崩溃循环;include_ext 指定监视的扩展名,可加入 html、css、js;exclude_dir 忽略目录;exclude_regex 忽略文件模式;clean_on_exit 退出时删除 tmp 目录。

环境变量:Air 继承父 shell 环境,需在 air 前内联设置或用 Makefile 加载 .env;不支持在 .air.toml 中设置环境变量。

Makefile 集成:可定义 dev、dev-email、dev-clean 目标,dev-clean 负责释放端口并删除残留 DB 文件。

常见问题:端口占用可用 lsof -ti :8080 | xargs kill -9 处理;SQLite 锁可设置 kill_delay、send_interrupt、pre_cmd 清理 WAL 文件;文件句柄过多需排除不必要目录;Air 是前台工具,脚本或 CI 中应改用 go run .;文件变化未被检测时检查 include_ext 与 exclude_dir。

限制:资料未提供价格、平台支持范围及性能数据。