Air怎么实现Go程序实时热重载使用
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,这篇"Air怎么实现Go程序实时热重载使用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这
千家信息网最后更新 2025年11月14日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安全错误
数据库的锁怎样保障安全
访问数据库很慢
海康服务器运行管理中心
我的世界方块帝国服务器攻略
网络安全钓鱼网漫画
网络安全风险评估数据共享评估
查询另一个数据库表的数据
医保数据库动态维护步骤
多台电脑如何连接一个数据库
apple服务器
杭州仕冠网络技术
java软件开发自我评价
桂州网络安全赛2021
湖北交友软件开发收费报价表
软件开发 java 难吗
数据库更新字段不固定
如何推进网络安全立法
知道数据库ip怎么进去
鲲鹏服务器安装系统
数据库怎么建立mdb文件
电脑网络安全检查记录表
福建邮电工程软件开发是干什么
龙口定制软件开发公司有哪些
git https服务器搭建
cdn和服务器
伊犁软件开发规范
上海市网络安全办公室
万州区一站式软件开发服务标志
西城区特色软件开发差异
数据库的值类型
小学生网络安全教育题目