返回顶部
首页 > 资讯 > 精选 >Air怎么实现Go程序实时热重载使用
  • 912
分享到

Air怎么实现Go程序实时热重载使用

2023-06-30 04:06:02 912人浏览 八月长安
摘要

这篇“air怎么实现Go程序实时热重载使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Air怎么实现Go程序实时热重载使用

这篇“air怎么实现Go程序实时热重载使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Air怎么实现Go程序实时热重载使用”文章吧。

为什么需要实时加载?

之前使用python编写WEB项目的时候,常见的flaskDjango框架都是支持实时加载的,你修改了项目代码之后,程序能够自动重新加载并执行(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 "<PROJECT>" \    -e "air_wd=<PROJECT>" \    -v $(pwd):<PROJECT> \    -p <PORT>:<APP SERVER PORT> \    cosmtrek/air    -c <CONF>

然后按照下面的方式在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程序实时热重载使用

以上就是关于“Air怎么实现Go程序实时热重载使用”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: Air怎么实现Go程序实时热重载使用

本文链接: https://lsjlt.com/news/327326.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Air怎么实现Go程序实时热重载使用
    这篇“Air怎么实现Go程序实时热重载使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Air怎么实现Go程序实时热重载使用...
    99+
    2023-06-30
  • Air实现Go程序实时热重载使用过程解析示例
    目录前言为什么需要实时加载?Air介绍安装AirGoMacOSLinuxWindowsDcoker使用Airair_example.conf示例效果演示前言 今天我们要介绍一个神器&...
    99+
    2024-04-02
  • 怎么使用Node.js实现热重载页面
    这篇文章主要介绍“怎么使用Node.js实现热重载页面”,在日常操作中,相信很多人在怎么使用Node.js实现热重载页面问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用Node.js实现热重载页面”的疑...
    99+
    2023-06-17
  • Node.js怎么实现热重载页面
    这篇文章主要介绍了Node.js怎么实现热重载页面的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Node.js怎么实现热重载页面文章都会有所收获,下面我们一起来看看吧。热重载所谓热重载就是页面每次改动,不需要手...
    99+
    2023-07-04
  • 如何使用Node.js实现热重载页面
    这篇文章主要介绍“如何使用Node.js实现热重载页面”,在日常操作中,相信很多人在如何使用Node.js实现热重载页面问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用...
    99+
    2024-04-02
  • 怎么在Node.js中实现热重载页面
    怎么在Node.js中实现热重载页面?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、初始化项目这里使用以下命令初始化项目。这里使用-y后缀我是为了更快更方便地初始化,如果你想...
    99+
    2023-06-14
  • 详解如何使用Node.js实现热重载页面
    前言 前不久我结合browser-sync+gulp+gulp-nodemon实现了一款生产环境热更新(我之前理解有点偏差,应该定义为热更新,不是热重载)的项目脚手架,那么,今天我...
    99+
    2024-04-02
  • java热加载怎么实现的
    Java的热加载可以通过使用Java的反射机制和自定义的类加载器来实现。下面是一种常见的实现方式: 创建一个自定义的类加载器,继...
    99+
    2023-10-25
    java
  • 如何在 Go 语言中使用 JavaScript 实现实时应用程序?
    随着互联网的发展,实时应用程序越来越受到人们的关注。实时应用程序是指能够在用户与应用程序之间交互时立即响应的应用程序。这种应用程序需要能够快速地处理大量的数据,并在必要的时候向用户发送数据。为了实现这种应用程序,开发人员需要使用多种编程语...
    99+
    2023-09-08
    实时 教程 javascript
  • .net加载失败的程序集怎么实现重新加载
    这篇文章主要介绍“.net加载失败的程序集怎么实现重新加载”,在日常操作中,相信很多人在.net加载失败的程序集怎么实现重新加载问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”.net加载失败的程序集怎么实现重...
    99+
    2023-07-02
  • redis怎么实现热点排序
    redis实现热点排序的示例:使用springboot+redis实现热词搜索,代码如下:import cc.datebook.common.JsonResult;import cc.datebook.entity.BookInfo;imp...
    99+
    2024-04-02
  • java热加载是怎么实现的
    Java热加载是通过类加载器(ClassLoader)实现的。在Java应用程序运行时,类加载器负责加载类文件并将其转换为字节码。当...
    99+
    2024-04-02
  • javascript重载怎么实现
    这篇文章主要讲解了“javascript重载怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript重载怎么实现”吧!首先,什么是重载?在其他一些编程语言中,重载指的是在同...
    99+
    2023-07-06
  • 使用CocosCreator怎么实现热更新
    今天就跟大家聊聊有关使用CocosCreator怎么实现热更新,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。什么是热更热更(新)本质上是从服务器下载需要的资源到本地,并且可以执行新的...
    99+
    2023-06-14
  • 微信小程序中怎么使用GoEasy实现实时通讯
    本篇文章给大家分享的是有关微信小程序中怎么使用GoEasy实现实时通讯,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、获取appkeyGoE...
    99+
    2024-04-02
  • 用Go语言实现操作符重载
    利用Go语言实现运算符重载的方法 在Go语言中,是不支持像C++或者Python那样直接重载运算符的。但是我们可以通过定义自定义类型和对应的方法来模拟实现运算符重载的功能。下面将介绍如...
    99+
    2024-02-24
    方法 go语言 运算符重载
  • 如何使用Go编写实时异步程序?
    Go是一门高效、并发、简单易学的编程语言,它的并发模型和轻量级线程(goroutine)的实现使其成为编写实时异步程序的绝佳选择。在本文中,我们将介绍如何使用Go编写实时异步程序,并演示一些代码示例。 1. 什么是实时异步程序? 实时异步程...
    99+
    2023-06-25
    实时 异步编程 npm
  • 怎么使用Go语言实现时间轮
    本文小编为大家详细介绍“怎么使用Go语言实现时间轮”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用Go语言实现时间轮”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。时间轮概述时间轮是一种基于时间概念的循环缓...
    99+
    2023-07-05
  • mybatis xml文件热加载怎么实现
    这篇文章主要介绍了mybatis xml文件热加载怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mybatis xml文件热加载怎么实现文章都会有所收获,下面我们一起来看看吧。一、x...
    99+
    2023-07-05
  • .NET怎么使用System.Timers.Timer类实现程序定时执行
    这篇文章主要讲解了“.NET怎么使用System.Timers.Timer类实现程序定时执行”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“.NET怎么使用System.Timers.Time...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作