air熱載入
阿新 • • 發佈:2020-10-27
air
Golang 這種編譯語言和 Rails/Python 這種指令碼語言不同, 指令碼語言做後端, 只要不是配置和資料庫有變化, 一般都是原始碼一修改後, 最新後端服務就立即生效了.
但是 Golang 做後端, 需要每次修改程式碼以後都要重新編譯後重啟服務才行.
但是每次改完程式碼都切換到終端按 Ctrl + C 也是無比的煩.
對於我這種懶得寫程式碼的懶人, 偉大的Google從來都有現成的方案, 在Mac上直接用下面的命令在後端目錄下執行:
go get -u github.com/cosmtrek/air
進入專案執行air
如果報錯,沒有找到命令:
vim /etc/profile export PATH=$PATH:$GOPATH/bin # 退出 source /etc/profile
conf檔案
vim air.conf
# [Air](https://github.com/cosmtrek/air) TOML 格式的配置檔案 # 工作目錄 # 使用 . 或絕對路徑,請注意 `tmp_dir` 目錄必須在 `root` 目錄下 root = "." tmp_dir = "tmp" [build] # 只需要寫你平常編譯使用的shell命令。你也可以使用 `make` # Windows平臺示例: cmd = "go build -o tmp\main.exe ." cmd = "go build -o ./tmp/main ." # 由`cmd`命令得到的二進位制檔名 # Windows平臺示例:bin = "tmp\main.exe" bin = "tmp/main" # 自定義執行程式的命令,可以新增額外的編譯標識例如新增 GIN_MODE=release # Windows平臺示例:full_bin = "tmp\main.exe" full_bin = "APP_ENV=dev APP_USER=air ./tmp/main" # 監聽以下副檔名的檔案. include_ext = ["go", "tpl", "tmpl", "html"] # 忽略這些副檔名或目錄 exclude_dir = ["assets", "tmp", "vendor", "frontend/node_modules"] # 監聽以下指定目錄的檔案 include_dir = [] # 排除以下檔案 exclude_file = [] # 如果檔案更改過於頻繁,則沒有必要在每次更改時都觸發構建。可以設定觸發構建的延遲時間 delay = 1000 # ms # 發生構建錯誤時,停止執行舊的二進位制檔案。 stop_on_error = true # air的日誌檔名,該日誌檔案放置在你的`tmp_dir`中 log = "air_errors.log" [log] # 顯示日誌時間 time = true [color] # 自定義每個部分顯示的顏色。如果找不到顏色,使用原始的應用程式日誌。 main = "magenta" watcher = "cyan" build = "yellow" runner = "green" [misc] # 退出時刪除tmp目錄 clean_on_exit = true
執行
air -c air.conf
參考文章: