首页 > 后端开发 > Golang > 正文

如何在 Gin 项目中启用热重载

WBOY
发布: 2024-08-22 20:31:02
原创
867 人浏览过

How to enable hot reload in your Gin project

Gin 是 Go 世界中最快的框架之一。然而,Gin 中缺少一项功能,那就是 hot realod。因此,在这篇博客中,我可以向您展示如何在 Gin 项目中启用热重载功能。

假设这是你的 main.go fie

package main

import (
    "fmt"
    "net/http"
    "github.com/gin-gonic/gin"
)

func successResponse(data interface{}) gin.H {
    return gin.H{
        "status": "success",
        "data": data,
    }
}

func successResponseWithMessageAndCode(data interface{}, message string, code int,c *gin.Context) {
    c.JSON(code, gin.H{
        "status": "success",
        "data": data,
        "message": message,
    })
}

func main() {
    r := gin.Default()
    fmt.Println("Hello World")
    r.GET("/", func(c *gin.Context) {
        data:= map[string]interface{}{
            "message": "Hello World",
        }
        successResponseWithMessageAndCode(data, "Success", http.StatusOK, c)
    })

    r.GET("/hello", func(c *gin.Context) {
        c.JSON(http.StatusOK, gin.H{
            "message": "Hello World",
        })
    })

    r.Run("localhost:8080")

}
登录后复制

因此我们可以使用 Air (https://github.com/air-verse/air) - 为您的 Go 应用程序实时重新加载

使用此命令安装 Air ?

go install github.com/air-verse/air@latest
登录后复制

然后使用此命令添加 .air.toml 文件

air init
登录后复制

如果找不到air命令,可能是因为Go bin目录不在你的PATH中

在这种情况下我使用鱼终端

首先,让我们找出 Go 安装二进制文件的位置。运行此命令:

echo $GOPATH/bin
登录后复制

如果未设置 $GOPATH,默认位置通常是 ~/go/bin。

现在,让我们将此目录添加到 Fish 中的 PATH 中。打开您的 Fish 配置文件:

nano ~/.config/fish/config.fish
登录后复制

将以下行添加到文件中:

set -gx PATH $PATH $GOPATH/bin
登录后复制

如果未设置 $GOPATH,请使用完整路径,例如:

set -gx PATH $PATH ~/go/bin
登录后复制

保存文件并退出编辑器。
重新加载您的 Fish 配置:

 ~/.config/fish/config.fish
登录后复制

现在再次尝试运行空气:

air
登录后复制

如果您使用的是 bash 终端,则必须编辑 .~/bashrc 文件。

现在编辑 .air.toml 文件

root = "."
tmp_dir = "tmp"

[build]
cmd = "go build -o ./tmp/main ."
bin = "tmp/main"
full_bin = "APP_ENV=dev APP_USER=air ./tmp/main"
include_ext = ["go", "tpl", "tmpl", "html"]
exclude_dir = ["assets", "tmp", "vendor"]
include_dir = []
exclude_file = []
log = "air.log"
delay = 1000 # ms
stop_on_error = true
send_interrupt = false
kill_delay = 500 # ms

[log]
time = false

[color]
main = "magenta"
watcher = "cyan"
build = "yellow"
runner = "green"

[misc]
clean_on_exit = true
登录后复制

确保您的 Gin 应用程序在本地主机上侦听,而不仅仅是 :8080 以获得更好的热重载行为

r.Run("localhost:8080")
登录后复制

现在不用运行 go run main.go ,只需运行 air 即可看到神奇的效果。

以上是如何在 Gin 项目中启用热重载的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!