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
76100
代码可运行
举报
文章被收录于专栏:生活处处有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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Air实现Go程序实时热重载
在使用Go语言在本地做web开发调试的时候,经常需要在修改代码之后频繁的按下Crtl+C停止程序并重新编译执行,这样就比较麻烦
mousemin
2023/06/10
6110
govendor包管理及Go项目热加载
Go从1.5版本之后,就默认优先使用vendor子目录中的依赖库,而不是$GOPATH/src中的依赖包,这样我们可以把工程源码到处复制,使用时直接go build就可以了,不需要考虑一大堆第三方依赖包的管理问题。
iginkgo18
2021/04/19
1.9K0
Gin 项目引入热加载
热加载(Hot Reloading)是指在应用程序运行时,对代码进行修改后,系统能够自动重新加载这些修改,而无需停止和重新启动整个应用程序。这使得开发者能够在不中断应用程序运行的情况下进行代码的调试和修改。
贾维斯Echo
2024/01/06
2530
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 每日一库之 air
air是 Go 语言的热加载工具,它可以监听文件或目录的变化,自动编译,重启程序。大大提高开发期的工作效率。
用户7731323
2020/10/23
8720
Go 每日一库之 air
gin框架的几种热加载方法,你值得拥有
哈喽,大家好,我是asong,这是我的第九篇原创文章。今天给大介绍几种热加载的方法,大大提高我们的开发效率。本篇文章的所有实现都是基于GIN框架的。
Golang梦工厂
2022/07/07
8330
gin框架的几种热加载方法,你值得拥有
我的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
5000
我的Go+语言初体验——基于Windows系统创建Go+语言环境
golang工程通用构建方式
要解决上述的问题,我们需要一个构建脚本/工具来自动化的在开发、持续集成、预发布阶段提供下列功能:
周亮宇
2019/08/19
2.2K0
编译kubernetes源码
定制kubernetes源码的前提是需要知道如何编译kubernetes,我们需要掌握编译整个工程以及编译脚本具体做了哪些事以及如何编译单个组件等
sealyun
2019/12/17
2.5K0
编译kubernetes源码
探索 Golang 云原生游戏服务器开发,硬核实战之调试 NanoServer 生产级麻将游戏服务器
因为 nanoserver 使用了 xorm,它会自动的根据定义的 model 生成数据库表 schema。
为少
2021/05/27
1.5K0
探索 Golang 云原生游戏服务器开发,硬核实战之调试 NanoServer 生产级麻将游戏服务器
Windows下GO的开发环境配置及多工作区配置
官网下载 或者golang中国下载 默认安装到C:\GO,使用go version查看版本:
易墨
2018/09/14
1.8K0
Windows下GO的开发环境配置及多工作区配置
申威(神/声)(SW)1621 + UOS 20 编译安装 Docker | 容器国产化适配
1.解压 runc 源码至 ~/go/src/github.com/opencontainers 目录;
宋天伦
2023/10/20
1.5K0
Go每日一库之5:cobra
cobra是一个命令行程序库,可以用来编写命令行程序。同时,它也提供了一个脚手架,
luckpunk
2023/09/13
4390
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 Module的使用 顶
注意:go mod 还有一些其他比较有意思的工具,比如可以打印依赖树,比如可以查看哪些模块在哪些包引用了
BGBiao
2019/09/09
1.3K0
Go开发使用VSCode完全配置指南
近期和朋友合作完成一个项目,后端使用 Golang 来进行编写。那么我又把 Golang 重新捣鼓起来了,然后看了一下文件记录,都一年多没有写了。
林小帅
2020/02/25
8.5K0
Go开发使用VSCode完全配置指南
简述Go以及搭建Go环境
Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
新人小试
2020/02/25
1.2K0
从零开始构建向量数据库:Milvus 的源码编译安装(一)
我在知乎上开了一个新的专栏,想持续聊聊“向量数据库”相关的内容。本篇聊聊向量数据库领域,知名的开源技术项目:Milvus。
soulteary
2022/07/11
2.8K0
再记录一下vscode配置golang开发的一些注意事项
M$推出vscode之后,感觉世界真美好。于是从liteide转到vscode了。但是golang组织代码的目录管理这尿性比较奇葩。常常把自己搞得五迷三道的。有时候正常,有时候又掉链子。现在记录一下一些注意事项。 windows下的vscode,首先安装golang到 c:/Go 也就是环境变量GOROOT=c:/Go,然后指定GOPATH=c:/Go/gopath 这个目录自己建立。环境变量里面GOROOT和GOPATH只留下系统变量,用户变量中的GOROOT,GOPATH删除。不然鬼知道会搞出神马冲突,不划算,环境变量设置好之后,一定要重新自动下电脑,不然有时候vscode读不到最新环境变量设置。之所以GOPATH指定一个专用目录,而不是用户目录(类似 C:\Users\Administrator\go),主要因为项目如果发布到git,自己在多台电脑上编译代码的话。比较麻烦所以统一指定固定目录。 然后vscode安装微软的ms-vscode.go插件。穿好后用workspace来组织golang代码。 目录结构大致如下:
xiny120
2019/07/26
4.3K0
相关推荐
Air实现Go程序实时热重载
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验