溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Go熱加載之fresh問題怎么解決

發(fā)布時間:2022-08-23 16:45:04 來源:億速云 閱讀:746 作者:iii 欄目:開發(fā)技術(shù)

這篇“Go熱加載之fresh問題怎么解決”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Go熱加載之fresh問題怎么解決”文章吧。

正文

熱加載是指可以在不重啟服務(wù)的情況下,保存后即可讓更改的代碼生效的一種開發(fā)模式。熱加載可以顯著的提升開發(fā)和調(diào)試的效率,有了熱加載后,說明你不用重新再編譯、再執(zhí)行了。

特別是涉及到效果渲染,如前端的開發(fā)中,如果每次改了代碼后都要重新編譯再執(zhí)行,那開發(fā)效率太低了。

最完美的就是:代碼改了啥,我一保存,前端頁面馬上就能顯示我改了啥,這樣就十分方便。

同樣 Go 里面也有這種熱加載的機(jī)制,Go 語言具有 部署簡單、并發(fā)性好、上手快 的優(yōu)勢,如 Docker、Kubnernetes 等都是用 Go 開發(fā),現(xiàn)在很多服務(wù)的后臺也是用 Go 來寫的,Go 發(fā)展迅速,使用人群基數(shù)也在不斷擴(kuò)大。

其實(shí),Go 的熱加載小工具的選擇還是挺多的,除了我們這里要說的 fresh 之外,還有 air、bee、gowatch 等。

咱們開始。

首先確保你已經(jīng)安裝好了 Go 的環(huán)境 (Go 環(huán)境的安裝特別簡單),然后安裝 fresh,同樣非常簡單:

go get github.com/pilu/fresh

沒錯,這樣就好了。怎么用呢?咱們到 go 的工程目錄下,直接鍵入 fresh 替換原來的 go run main.go,就可以直接跑起來了。

為了更加好的說明,咱們來舉個例子,用 gin 來舉例吧,編寫一個 main.go 文件:

package main

import (
    "github.com/gin-gonic/gin"
)

func main() {
    // 創(chuàng)建一個默認(rèn)的路由引擎
    r := gin.Default()
    // 配置路由
    r.GET("/", func(c *gin.Context){
        c.JSON(200, gin.H{  // c.JSON: 返回 JSON 格式的數(shù)據(jù)
            "message": "Hello world! I from Gin.",
        })
    })
    // 啟動 HTTP 服務(wù),監(jiān)聽 8080 端口
  r.Run(":8080")
}

傳統(tǒng)運(yùn)行 go 的方式:

go run main.go

打開 chrome,輸入 IP:8080,可得到輸出:

Go熱加載之fresh問題怎么解決

注:上圖的 FeHelper 是個瀏覽器插件,可以更加好的展示如 JSON 格式數(shù)據(jù)

上面說的 傳統(tǒng)運(yùn)行 go 的方式 也即冷啟動,每次改動?xùn)|西后,需要重新手動啟動程序。接下來咱們使用 熱啟動,直接鍵入 fresh

前端展示效果是一樣的,這個時候如果你改了東西,直接保存,它不用再重啟服務(wù),就可以直接幫你把修改后的渲染到頁面了。

再補(bǔ)充一下,如果你在執(zhí)行 fresh 命令碰到報錯: fresh: 未找到命令。則你可能需要做個軟連接:

sudo ln -s ~/go/bin/fresh /usr/bin

這樣應(yīng)該就可以了。

以上就是關(guān)于“Go熱加載之fresh問題怎么解決”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI