Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Go开发神器-Air热加载

Go开发神器-Air热加载

作者头像
用户10002156
发布于 2023-12-13 05:36:49
发布于 2023-12-13 05:36:49
28000
代码可运行
举报
文章被收录于专栏:生活处处有BUG生活处处有BUG
运行总次数:0
代码可运行

背景

Air 是一个开发环境下的 Go Web 应用程序自动重新加载工具。当你对你的项目进行更改并保存时,它会自动重新构建和重新加载应用程序。Air 支持 Windows、macOS 和 Linux。由于大部分小伙伴是windows系统,这里就以win10作演示。

下载

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
go get -u github.com/cosmtrek/air

配置环境变量

由于配置环境变量需要exe执行文件,先进入ari目录,cmd运行。找到go安装路径下的air文件夹加入环境变量配置.我的air目录为C:\Windows\System32\cmd.exe,然后输入go build . 后文件夹会生成一个air.exe文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
C:\Users\xj\go\pkg\mod\github.com\cosmtrek\air@v1.49.0>go build .
go: downloading github.com/fatih/color v1.14.1
go: downloading golang.org/x/sys v0.5.0
go: downloading github.com/mattn/go-isatty v0.0.17
go: downloading github.com/pelletier/go-toml/v2 v2.0.6
go: downloading golang.org/x/text v0.7.0
go: downloading google.golang.org/protobuf v1.28.1

image-20231203153002857

重启cmd,执行air -v命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
C:\Users\xj>air -v

  __    _   ___
 / /\  | | | |_)
/_/--\ |_| |_| \_ (devel), built with Go go1.21.4

配置

Go项目根目录中配置air.conf文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# [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.exe ."
# 由`cmd`命令得到的二进制文件名
# Windows平台示例:bin = "tmp/main.exe"
bin = "tmp/main.exe"
# 自定义执行程序的命令,可以添加额外的编译标识例如添加 GIN_MODE=release
# Windows平台示例:full_bin = "./tmp/main.exe"
# Linux平台示例:full_bin = "APP_ENV=dev APP_USER=air ./tmp/main.exe"
full_bin = "./tmp/main.exe"
# 监听以下文件扩展名的文件.
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

普通项目,如gin,打开cmd,进入你GO项目根目录,执行air命令,执行成功,完毕。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
air

go-admin

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
air server

附其他安装方法

Mac、Linux、Window

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# binary will be $(go env GOPATH)/bin/air
curl -sSfL https://raw.githubusercontent.com/cosmtrek/air/master/install.sh | sh -s -- -b $(go env GOPATH)/bin
 
# or install it into ./bin/
curl -sSfL https://raw.githubusercontent.com/cosmtrek/air/master/install.sh | sh -s

我有个大胆的想法

小伙伴在平常有没有遇到以下这种情况:遇到技术难题时,网上教程一堆堆,优秀的很多,但也有很多是过时的,或者是copy来copy去,甚至错别字都没改。

我公众号的技术文章,都是亲自校验过的。至少可以保证在发文的一段时间,不会过时。如果你在实操过程中,有遇到问题,可以在同名公众号留言,免费解答,相互学习,相互成长^v^

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生活处处有BUG 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Go 每日一库之 air
air是 Go 语言的热加载工具,它可以监听文件或目录的变化,自动编译,重启程序。大大提高开发期的工作效率。
用户7731323
2020/10/23
8720
Go 每日一库之 air
govendor包管理及Go项目热加载
Go从1.5版本之后,就默认优先使用vendor子目录中的依赖库,而不是$GOPATH/src中的依赖包,这样我们可以把工程源码到处复制,使用时直接go build就可以了,不需要考虑一大堆第三方依赖包的管理问题。
iginkgo18
2021/04/19
1.9K0
Gin 项目引入热加载
热加载(Hot Reloading)是指在应用程序运行时,对代码进行修改后,系统能够自动重新加载这些修改,而无需停止和重新启动整个应用程序。这使得开发者能够在不中断应用程序运行的情况下进行代码的调试和修改。
贾维斯Echo
2024/01/06
2540
Gin 项目引入热加载
Air实现Go程序实时热重载
在使用Go语言在本地做web开发调试的时候,经常需要在修改代码之后频繁的按下Crtl+C停止程序并重新编译执行,这样就比较麻烦
mousemin
2023/06/10
6110
gin框架的几种热加载方法,你值得拥有
哈喽,大家好,我是asong,这是我的第九篇原创文章。今天给大介绍几种热加载的方法,大大提高我们的开发效率。本篇文章的所有实现都是基于GIN框架的。
Golang梦工厂
2022/07/07
8330
gin框架的几种热加载方法,你值得拥有
【Golang】怎么实现Go程序的实时热更新
在前端项目中,在开发中,通过npm启动devServer后,任何即时的代码修改,都会重启devServer,就算是node.js后端项目,也有nodemon监听代码文件的变动,当代码改变之后,便会自动重启;这样大大方便了我们开发人员,提高了开发效率。那么Go中是否有如此方便的工具?因为在实际开发过程中,确实有很多这种情况需要重新运行,比如:
DDGarfield
2022/06/23
3.6K0
【Golang】怎么实现Go程序的实时热更新
GO实时热重载
在使用Go语言的gin框架在本地做开发调试的时候,经常需要在变更代码之后频繁的按下Ctrl+C停止程序并重新编译再执行,这样就不是很方便,Github上有一个工具Air就为大家解决了这个烦恼。
Petrochor
2022/06/07
6112
Go每日一库之5:cobra
cobra是一个命令行程序库,可以用来编写命令行程序。同时,它也提供了一个脚手架,
luckpunk
2023/09/13
4390
Go开发使用VSCode完全配置指南
近期和朋友合作完成一个项目,后端使用 Golang 来进行编写。那么我又把 Golang 重新捣鼓起来了,然后看了一下文件记录,都一年多没有写了。
林小帅
2020/02/25
8.5K0
Go开发使用VSCode完全配置指南
编译kubernetes源码
定制kubernetes源码的前提是需要知道如何编译kubernetes,我们需要掌握编译整个工程以及编译脚本具体做了哪些事以及如何编译单个组件等
sealyun
2019/12/17
2.5K0
编译kubernetes源码
Golang基于Gitlab CI/CD部署方案
持续集成 (Continuous integration)是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
李海彬
2018/12/24
1.5K0
我的Go+语言初体验——基于Windows系统创建Go+语言环境
文章目录 一、🔍 下载并安装Go环境 二、🕚 Windows系统上安装Git 三、💦拷贝 Git 仓库到本地 四、💢执行all.bat脚本安装Go+ 五、✅验证Go+环境是否安装成功 一、🔍 下载并安装Go环境 🧡 Go官网:https://golang.google.cn/ 🎈 下载链接 🔗 https://golang.google.cn/dl/ ✅ 下载go1.17.4.windows-amd64.msi版本 🖨 双击go1.17.4.windows-amd64.msi,进行安装。 傻瓜式
宝耶需努力
2022/12/13
5010
我的Go+语言初体验——基于Windows系统创建Go+语言环境
vscode golang环境搭建「建议收藏」
下载地址为: https://golang.google.cn/dl/ 如果是linux环境,解压到某个目录。然后配置/etc/profile设置相关环境变量 如果是windows环境,下载https://dl.google.com/go/go1.13.5.windows-amd64.msi,然后设置环境变量。 环境变量为: GOPATH:%USERPROFILE%\go GOPROXY:https://goproxy.cn GOROOT:C:\Program Files (x86)\go Path环境变量,追加一条:C:\Program Files\Git\bin
全栈程序员站长
2022/11/08
1.2K0
探索 Golang 云原生游戏服务器开发,硬核实战之调试 NanoServer 生产级麻将游戏服务器
因为 nanoserver 使用了 xorm,它会自动的根据定义的 model 生成数据库表 schema。
为少
2021/05/27
1.5K0
探索 Golang 云原生游戏服务器开发,硬核实战之调试 NanoServer 生产级麻将游戏服务器
从零开始构建向量数据库:Milvus 的源码编译安装(一)
我在知乎上开了一个新的专栏[1],想持续聊聊“向量数据库”相关的内容。本篇聊聊向量数据库领域,知名的开源技术项目:Milvus。
soulteary
2023/03/05
6K0
从零开始构建向量数据库:Milvus 的源码编译安装(一)
简化 Go 开发 - 使用强大的工具提高生产力
链接|https://medium.com/@joloiuy/simplify-go-development-boost-your-productivity-with-powerful-tools-14ad4bc311b3
我是阳明
2023/10/09
2780
简化 Go 开发 - 使用强大的工具提高生产力
『Go 语言学习专栏』-- 第十四期
go-14.png 14.png 大家好,我叫谢伟,是一名程序员。 最近比较低效... 今天的主题:工程管理 为了写出这一章节,我翻阅了几本书。书中整理的很好,但对初学者不太友好,意思是可能看完就知道个大概。还是不能理解工程管理的具体做法是什么。所以,我呢,摒弃了书中的组织方式,转而使用示例的形式,从头到尾的把工程管理这事说明白。但是考虑到实际中的使用可能不太会事无巨细。希望大家理解。 工程管理主要包括这两方面内容:Go 命令行工具的使用、工程项目的组织 当然,我们这边使用一个例子来演示:爬虫。 v2
谢伟
2018/06/12
5540
申威(神/声)(SW)1621 + UOS 20 编译安装 Docker | 容器国产化适配
1.解压 runc 源码至 ~/go/src/github.com/opencontainers 目录;
宋天伦
2023/10/20
1.5K0
从零开始构建向量数据库:Milvus 的源码编译安装(一)
我在知乎上开了一个新的专栏,想持续聊聊“向量数据库”相关的内容。本篇聊聊向量数据库领域,知名的开源技术项目:Milvus。
soulteary
2022/07/11
2.8K0
简述Go以及搭建Go环境
Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
新人小试
2020/02/25
1.2K0
相关推荐
Go 每日一库之 air
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验