首頁 > 後端開發 > 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學習者快速成長!