Gin プロジェクトでホット リロードを有効にする方法

WBOY
リリース: 2024-08-22 20:31:02
オリジナル
867 人が閲覧しました

How to enable hot reload in your Gin project

Gin は Go の世界で最も高速なフレームワークの 1 つです。ただし、ジンに欠けている機能が 1 つあります。それはホット リアロッドです。このブログでは、Gin プロジェクトでホット 再ロード機能を有効にする方法を説明します。

これがあなたのメインだと仮定してください。行きましょう

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")
ログイン後にコピー

そして、 run go run main.go の代わりに、air を実行して、その魔法を見てみましょう。

以上がGin プロジェクトでホット リロードを有効にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!