真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

文件變更時自動重載Go程序的方法有哪些

這篇文章主要介紹文件變更時自動重載Go程序的方法有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)公司是專業(yè)的曹縣網(wǎng)站建設公司,曹縣接單;提供網(wǎng)站設計制作、做網(wǎng)站,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行曹縣網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

文件變更時自動重載Go程序的方法有哪些

許多人希望在寫GO時擁有實時加載代碼(熱編譯)的效果,特別是那些習慣使用 JavaScript,Python和Ruby等解釋語言的人,本文介紹了5種實時重新加載Go程序的方法。

本文假設已安裝Go編譯器,并且已將GOPATH/bin路徑添加到PATH環(huán)境變量中。

在開始之前,我們先創(chuàng)建一個簡單的web服務器,可以返回響應內(nèi)容”Hello,World”。

package mainimport (
    "net/http")func main() {
    http.HandleFunc("/", func (w http.ResponseWriter, r *http.Request) {
        w.Write([]byte("Hello, World"))
    })

    http.ListenAndServe(":5000", nil)}

Method 1: 使用Air

Air 是一個命令行程序,可以為Go程序提供實時代碼加載。

通過運行以下命令來安裝Air。

go get -u github.com/cosmtrek/air

下一步,在使用項目的根目錄中創(chuàng)建Air配置文件.air.conf。

# .air.conf
# toml配置文件來源于 [Air](https://github.com/cosmtrek/air)# 工作區(qū)間
# .(當前目錄)或絕對路徑, 注意這些目錄都在根目錄下面.root = "." tmp_dir = "tmp"[build]# 只是普通的shell命令。 可以使用`make`。
cmd = "go build -o ./tmp/main ."# `cmd`配置命令輸出的二進制文件的位置。
bin = "tmp/main"# 自定義二進制輸出。
full_bin = "APP_ENV=dev APP_USER=air ./tmp/main"# 監(jiān)聽的文件擴展后綴列表。
include_ext = ["go", "tpl", "tmpl", "html"]# 忽略這些文件擴展名或目錄。
exclude_dir = ["assets", "tmp", "vendor", "frontend/node_modules"]# 如果指定,則監(jiān)聽包含這些文件。
include_dir = []# 忽略文件列表.exclude_file = []# 如果文件修改太頻繁,則不必在每次修改時都立刻觸發(fā)構(gòu)建,設置觸發(fā)等待時間。
delay = 1000 # ms
# 發(fā)生編譯錯誤時,是否停止舊的二進制程序。
stop_on_error = true# 該日志文件放置在tmp_dir中。
log = "air_errors.log"[log]# 日志是否顯示時間
time = false[color]# 自定義每類輸出的顏色。 如果找不到這個顏色,使用原本的日志輸出演示。
main = "magenta"watcher = "cyan"build = "yellow"runner = "green"[misc]# 退出時是否刪除臨時目錄
clean_on_exit = true

配置是簡單明了的,請根據(jù)你的項目情況去調(diào)整。

最后,不要使用常用的go run命令來運行Go程序,而應使用air命令來啟動程序。

Method 2: docker運行Ari

這種方法需要使用docker,如果你沒有安裝,可以按照

我們?nèi)詫⑹褂肁ir庫,因此仍然需要Air配置文件。 如果你還沒有,請創(chuàng)建一個配置文件。

Docker鏡像cosmtrek/air附帶安裝了Air命令,并且GOPATH環(huán)境變量設置為/go

我們只需要將我們的項目目錄掛載到Docker容器的GOPATH中,并使用-p暴露需要使用的端口即可。 我們可以通過運行docker run命令來實現(xiàn)這一點:

docker run -it --rm -w  -v : -p : 

就我而言,我需要運行以下命令:

docker run -it --rm -w /go/src/github.com/praveen001/live-reloading -v /go/src/github.com/praveen001/live-reloading:/go/src/github.com/praveen001/live-reloading -p 5000:5000 cosmtrek/air

解釋:

使用-v參數(shù)將項目目錄 /home/praveen/go/src/github.com/praveen001/live-reloading 掛載到容器里面的GOPATH中的目錄/go/src/github.com/praveen001/live-reloading。

-v /home/praveen/go/src/github.com/praveen001/live-reloading:/go/src/github.com/praveen001/live-reloading

使用-w參數(shù)指定掛載目錄成工作目錄。

-w /go/src/github.com/praveen001/live-reloading

Web服務器正在監(jiān)聽端口5000,因此需要使用-p標志將容器端口5000暴露到主機端口5000。

-p 5000:5000

最后,指定docker鏡像名稱cosmtrek / air

Method 3: 使用Gin

Gin是另一個用于實時重新加載Go應用程序的命令行程序。

通過運行以下命令來安裝Gin。

go get github.com/codegangsta/gin

而不是使用通常的go run main.go命令運行應用程序,而是使用gin命令。

就我而言,--appPort參數(shù)告訴Gin監(jiān)聽端口5000,--port參數(shù)告訴Gin代理監(jiān)聽端口3000端口

gin --appPort 5000 --port 3000

現(xiàn)在使用地址http://localhost:3000訪問Gin程序.

如果要排除監(jiān)聽那個目錄可以使用--excludeDir參數(shù),例如:

gin --appPort 5000 --port 3000 --excludeDir ./frontend

如果你項使用Gin實現(xiàn)加載沒有啟動端口監(jiān)聽的程序,你們必須使用--immediate參數(shù)。但是Gin仍然會去5000端口。

你可以在這找到所有受支持的參數(shù)Gin的Github.

Method 4: 使用Nodemon

Nodemon是另一個用于實時重新加載Node應用程序的命令行程序。 但是可以通過使用--exec參數(shù)設置啟動命令用于啟動其他應用程序。

Nodemon需要安裝Nodejs和NPM。 如果沒有安裝,可以按照nodejs的官方文檔進行安裝.

運行以下命令來安裝nodemon:

npm install -g nodemon

現(xiàn)在,我們可以通過運行以下命令來使用Nodemon運行Web服務器:

nodemon --exec go run main.go --signal SIGTERM

如果要配置Nodemon,請在項目的根目錄中創(chuàng)建配置文件nodemon.json。 完整可用的示例配置文件

Method 5: 使用Fresh

Fresh 是另一個GO實現(xiàn)的用于實時重新加載Go的程序

安裝Fresh

go get github.com/pilu/fresh

而不是使用常用的go run main.go命令來運行應用程序,而是使用fresh命令。

fresh

要配置Fresh,需要在項目的根目錄中創(chuàng)建一個配置文件runner.conf。

這是一個示例配置文件。

root:              .tmp_path:          ./tmp
build_name:        runner-build
build_log:         runner-build-errors.log
valid_ext:         .go, .tpl, .tmpl, .html
no_rebuild_ext:    .tpl, .tmpl, .html
ignored:           assets, tmp
build_delay:       600colors:            1log_color_main:    cyan
log_color_build:   yellow
log_color_runner:  green
log_color_watcher: magenta
log_color_app:

以上是文件變更時自動重載Go程序的方法有哪些的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網(wǎng)站題目:文件變更時自動重載Go程序的方法有哪些
當前地址:http://weahome.cn/article/jisddo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部