Go 语言Air 工具使用入门

简介: 在Go开发中,频繁的手动重启应用以加载新代码既耗时又低效。为此,我们引入了Air——一款专为Go项目设计的自动重载工具。Air通过监听文件变化,实现代码更改后的自动编译与运行,极大提升了开发效率。本文将指导你完成Air的安装与配置,包括如何启动Air、忽略临时文件以及理解其工作原理,让Go项目开发更加流畅高效。

在开发 Go 应用程序时,我们经常需要重启应用来加载最新的代码更改。这个过程虽然简单,但重复的操作会降低我们的开发效率。

今天,我们要介绍的工具 —— Air, 就是为了解决这个问题而生的。

下面,我们将一步步介绍如何使用 Air 来实现 Go 项目的自动重载,让你的开发过程更加顺畅。

什么是 Air?

Air 是一个为 Go 项目提供自动重载功能的工具。通过监听项目中文件的变化,自动重新编译并运行你的应用,从而达到热重载的效果,极大地提升开发效率。Air 的使用也非常简单,下面我们将通过几个步骤来详细介绍。

安装 Air

安装 Air 的第一步是确保你的环境中安装了 Go,并且启用了 Go Module。这样我们可以更方便地管理项目的依赖。下面是安装 Air 的命令:

bash

代码解读

复制代码

# 最前面的 GO111MODULE=on 是只为当前命令启用 Go Module
# 开启以后我们才能使用 Go Proxy 进行加速,以下命令会全局安装 Air
GO111MODULE=on  go install github.com/cosmtrek/air@latest

上述命令会通过 Go 的包管理工具下载并安装 Air 到你的 $GOPATH/bin 目录下,因此请确保这个目录包含在你的环境变量 PATH 中。

检查安装情况

安装完成后,我们可以通过下面的命令来检查 Air 是否安装成功:

bash

代码解读

复制代码

air -v

如果安装成功,此命令将显示 Air 的版本信息。这说明 Air 已经准备好可以在你的项目中使用了。

使用 Air

接下来,让我们看看如何在实际项目中使用 Air 来实现自动重载功能。

  1. 启动 Air

在你的 Go 项目根目录下运行以下命令:

bash

代码解读

复制代码

# 运行 Air
air

go

代码解读

复制代码

这个命令会启动 Air,并根据 `air.toml` 配置文件(如果项目中没有这个文件,Air 会使用默认配置)来监听文件变化。一旦检测到文件更改,Air 会自动编译并重启你的应用。

2. 忽略临时文件

启动 Air 之后,你会发现项目根目录下多了一个 tmp 文件夹,Air 使用这个文件夹来存放编译过程中产生的临时文件。因为这些文件通常不需要提交到版本控制系统中,所以你应该将 tmp/ 添加到你的 .gitignore 文件中:

bash

代码解读

复制代码

# .gitignore
tmp/

工作原理

air 通过监视项目文件的改动来工作。当它检测到文件变化时,air 会触发构建过程,并在构建成功后重启你的应用程序。这样,你就不需要每次修改代码后都手动重新编译和运行了。

结尾

使用 Air,你的 Go 项目开发过程将变得更加顺畅,不再需要手动重启应用来加载更改。通过自动重载,你可以更专注于代码的编写和调试,提高开发效率。

值得注意的是,虽然 Air 是一个强大方便的工具,但在生产环境下还是应该关闭自动重载功能,以保证应用的稳定性和性能。

希望这篇文章能帮助你更好地了解和使用 Air,让你的 Go 项目开发变得更加轻松和愉快。

转载来源:https://juejin.cn/post/7388696625688510498

相关文章
|
19天前
|
存储 监控 算法
员工上网行为监控中的Go语言算法:布隆过滤器的应用
在信息化高速发展的时代,企业上网行为监管至关重要。布隆过滤器作为一种高效、节省空间的概率性数据结构,适用于大规模URL查询与匹配,是实现精准上网行为管理的理想选择。本文探讨了布隆过滤器的原理及其优缺点,并展示了如何使用Go语言实现该算法,以提升企业网络管理效率和安全性。尽管存在误报等局限性,但合理配置下,布隆过滤器为企业提供了经济有效的解决方案。
63 8
员工上网行为监控中的Go语言算法:布隆过滤器的应用
|
1月前
|
存储 Go 索引
go语言中数组和切片
go语言中数组和切片
43 7
|
1月前
|
Go 开发工具
百炼-千问模型通过openai接口构建assistant 等 go语言
由于阿里百炼平台通义千问大模型没有完善的go语言兼容openapi示例,并且官方答复assistant是不兼容openapi sdk的。 实际使用中发现是能够支持的,所以自己写了一个demo test示例,给大家做一个参考。
|
1月前
|
程序员 Go
go语言中结构体(Struct)
go语言中结构体(Struct)
106 71
|
1月前
|
存储 Go 索引
go语言中的数组(Array)
go语言中的数组(Array)
110 67
|
4天前
|
监控 安全 算法
深度剖析核心科技:Go 语言赋能局域网管理监控软件进阶之旅
在局域网管理监控中,跳表作为一种高效的数据结构,能显著提升流量索引和查询效率。基于Go语言的跳表实现,通过随机化索引层生成、插入和搜索功能,在高并发场景下展现卓越性能。跳表将查询时间复杂度优化至O(log n),助力实时监控异常流量,保障网络安全与稳定。示例代码展示了其在实际应用中的精妙之处。
27 9
|
14天前
|
算法 安全 Go
Go 语言中实现 RSA 加解密、签名验证算法
随着互联网的发展,安全需求日益增长。非对称加密算法RSA成为密码学中的重要代表。本文介绍如何使用Go语言和[forgoer/openssl](https://github.com/forgoer/openssl)库简化RSA加解密操作,包括秘钥生成、加解密及签名验证。该库还支持AES、DES等常用算法,安装简便,代码示例清晰易懂。
47 12
|
1月前
|
存储 Go
go语言中映射
go语言中映射
42 11
|
17天前
|
监控 算法 安全
解锁企业计算机监控的关键:基于 Go 语言的精准洞察算法
企业计算机监控在数字化浪潮下至关重要,旨在保障信息资产安全与高效运营。利用Go语言的并发编程和系统交互能力,通过进程监控、网络行为分析及应用程序使用记录等手段,实时掌握计算机运行状态。具体实现包括获取进程信息、解析网络数据包、记录应用使用时长等,确保企业信息安全合规,提升工作效率。本文转载自:[VIPShare](https://www.vipshare.com)。
24 0
|
1月前
|
Go 数据安全/隐私保护 UED
优化Go语言中的网络连接:设置代理超时参数
优化Go语言中的网络连接:设置代理超时参数