Air怎么实现Go程序实时热重载使用
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇"Air怎么实现Go程序实时热重载使用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这
千家信息网最后更新 2026年11月03日Air怎么实现Go程序实时热重载使用
这篇"Air怎么实现Go程序实时热重载使用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Air怎么实现Go程序实时热重载使用"文章吧。
为什么需要实时加载?
之前使用Python编写Web项目的时候,常见的Flask或Django框架都是支持实时加载的,你修改了项目代码之后,程序能够自动重新加载并执行(live-reload),这在日常的开发阶段是十分方便的。
在使用Go语言的gin框架在本地做开发调试的时候,经常需要在变更代码之后频繁的按下Ctrl+C停止程序并重新编译再执行,这样就不是很方便。
Air介绍
怎样才能在基于gin框架开发时实现实时加载功能呢?像这种烦恼肯定不会只是你一个人的烦恼,所以我报着肯定有现成轮子的心态开始了全网大搜索。果不其然就在Github上找到了一个工具:Air。它支持以下特性:
彩色日志输出
自定义构建或二进制命令
支持忽略子目录
启动后支持监听新目录
更好的构建过程
安装Air
Go
这也是最经典的安装方式:
go get -u github.com/cosmtrek/air
MacOS
curl -fLo air https://git.io/darwin_air
Linux
curl -fLo air https://git.io/linux_air
Windows
curl -fLo air.exe https://git.io/windows_air
Dcoker
docker run -it --rm \ -w "" \ -e "air_wd= " \ -v $(pwd): \ -p : \ cosmtrek/air -c
然后按照下面的方式在docker中运行你的项目:
docker run -it --rm \ -w "/go/src/github.com/cosmtrek/hub" \ -v $(pwd):/go/src/github.com/cosmtrek/hub \ -p 9090:9090 \ cosmtrek/air
使用Air
为了敲命令时更简单更方便,你应该把alias air='~/.air'加到你的.bashrc或.zshrc中。
首先进入你的项目目录:
cd /path/to/your_project
最简单的用法就是直接执行下面的命令:
# 首先在当前目录下查找 `.air.conf`配置文件,如果找不到就使用默认的air -c .air.conf
推荐的使用方法是:
# 1. 在当前目录创建一个新的配置文件.air.conftouch .air.conf# 2. 复制 `air.conf.example` 中的内容到这个文件,然后根据你的需要去修改它# 3. 使用你的配置运行 air, 如果文件名是 `.air.conf`,只需要执行 `air`。air
air_example.conf示例
完整的air_example.conf示例配置如下,可以根据自己的需要修改。
# [Air](https://github.com/cosmtrek/air) TOML 格式的配置文件# 工作目录# 使用 . 或绝对路径,请注意 `tmp_dir` 目录必须在 `root` 目录下root = "."tmp_dir = "tmp"[build]# 只需要写你平常编译使用的shell命令。你也可以使用 `make`# Windows平台示例: cmd = "go build -o tmp\main.exe ."cmd = "go build -o ./tmp/main ."# 由`cmd`命令得到的二进制文件名# Windows平台示例:bin = "tmp\main.exe"bin = "tmp/main"# 自定义执行程序的命令,可以添加额外的编译标识例如添加 GIN_MODE=release# Windows平台示例:full_bin = "tmp\main.exe"full_bin = "APP_ENV=dev APP_USER=air ./tmp/main"# 监听以下文件扩展名的文件.include_ext = ["go", "tpl", "tmpl", "html"]# 忽略这些文件扩展名或目录exclude_dir = ["assets", "tmp", "vendor", "frontend/node_modules"]# 监听以下指定目录的文件include_dir = []# 排除以下文件exclude_file = []# 如果文件更改过于频繁,则没有必要在每次更改时都触发构建。可以设置触发构建的延迟时间delay = 1000 # ms# 发生构建错误时,停止运行旧的二进制文件。stop_on_error = true# air的日志文件名,该日志文件放置在你的`tmp_dir`中log = "air_errors.log"[log]# 显示日志时间time = true[color]# 自定义每个部分显示的颜色。如果找不到颜色,使用原始的应用程序日志。main = "magenta"watcher = "cyan"build = "yellow"runner = "green"[misc]# 退出时删除tmp目录clean_on_exit = true
效果演示

以上就是关于"Air怎么实现Go程序实时热重载使用"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
文件
目录
程序
实时
内容
命令
示例
配置
日志
项目
支持
二进制
平台
文件名
框架
开发
监听
编译
运行
频繁
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技股
什么是科技互联网
互联网是第几次科技革命的成果
工业互联网科技新基建
美国互联网科技巨头监管
易互联网科技有限公司
互联网科技革命
互联网科技宣传片
北京大学互联网科技怎么样
宁波青枫互联网科技有限公司
互联网教育科技公司vipkid
互联网校园科技培训
未来五年的互联网科技
互联网媒体平台算高科技产业
爱医互联网络科技
智帮互联网科技公司最近动向
从那以后互联网科技有限公司
互联网高科技行业有哪些企业
众联互联网络科技
数字科技和互联网金融哪个好
期待互联网科技
朗涯互联网科技
苏州互联网科技贷款公司
火传媒上海互联网科技
老年人脱离互联网科技的作文
湖南洣水互联网科技有限公司扣款
互联网科技产品
浙江互联网科技研学营
互联网科技与大数据专业
中国新注册互联网科技