Air怎么实现Go程序实时热重载使用
发表于:2024-11-17 作者:千家信息网编辑
千家信息网最后更新 2024年11月17日,这篇"Air怎么实现Go程序实时热重载使用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这
千家信息网最后更新 2024年11月17日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安全错误
数据库的锁怎样保障安全
信息化网络安全档案目录
网络安全保险可保责任
软件开发决策分析PPT
上海电子单片机软件开发招聘
机器视觉和软件开发
研究网络安全重要性
上位机软件开发怎么入门
校园网免认证搭建服务器
印刷报价软件开发公司
黄冈师范大学软件开发专业
简述车载网络技术的分类
大学法制与廉洁展馆软件开发
软件开发人力外包缺点
中国经济信息网数据库
菏泽网络安全检查
linux系统导出数据库
数据库中正确的逻辑运算
软件开发涉密资质办理
公共信息网络安全监察部门成立
sql数据库恢复删除
青少年网络安全教育公开课
战地4服务器少
全文检索文档服务器
共建网络安全共享网络教育
美团软件开发票
饥荒服务器模组中途修改
词频统计外文数据库
嘉兴本地软件开发商常见问题
还需要数据库的密码
职工网络安全教育内容