<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
今天我們要介紹一個神器——Air能夠實時監聽專案的程式碼檔案,在程式碼發生變更之後自動重新編譯並執行,大大提高gin框架專案的開發效率。
之前使用Python編寫Web專案的時候,常見的Flask或Django框架都是支援實時載入的,你修改了專案程式碼之後,程式能夠自動重新載入並執行(live-reload),這在日常的開發階段是十分方便的。
在使用Go語言的gin框架在本地做開發偵錯的時候,經常需要在變更程式碼之後頻繁的按下Ctrl+C
停止程式並重新編譯再執行,這樣就不是很方便。
怎樣才能在基於gin框架開發時實現實時載入功能呢?像這種煩惱肯定不會只是你一個人的煩惱,所以我報著肯定有現成輪子的心態開始了全網大搜尋。果不其然就在Github上找到了一個工具:Air。它支援以下特性:
這也是最經典的安裝方式:
go get -u github.com/cosmtrek/air
curl -fLo air https://git.io/darwin_air
curl -fLo air https://git.io/linux_air
curl -fLo air.exe https://git.io/windows_air
docker run -it --rm -w "<PROJECT>" -e "air_wd=<PROJECT>" -v $(pwd):<PROJECT> -p <PORT>:<APP SERVER PORT> cosmtrek/air -c <CONF>
然後按照下面的方式在docker中執行你的專案:
docker run -it --rm -w "/go/src/github.com/cosmtrek/hub" -v $(pwd):/go/src/github.com/cosmtrek/hub -p 9090:9090 cosmtrek/air
為了敲命令時更簡單更方便,你應該把alias air='~/.air'
加到你的.bashrc
或.zshrc
中。
首先進入你的專案目錄:
cd /path/to/your_project
最簡單的用法就是直接執行下面的命令:
# 首先在當前目錄下查詢 `.air.conf`組態檔,如果找不到就使用預設的 air -c .air.conf
推薦的使用方法是:
# 1. 在當前目錄建立一個新的組態檔.air.conf touch .air.conf # 2. 複製 `air.conf.example` 中的內容到這個檔案,然後根據你的需要去修改它 # 3. 使用你的設定執行 air, 如果檔名是 `.air.conf`,只需要執行 `air`。 air
完整的air_example.conf
範例設定如下,可以根據自己的需要修改。
# [Air](https://github.com/cosmtrek/air) TOML 格式的組態檔 # 工作目錄 # 使用 . 或絕對路徑,請注意 `tmp_dir` 目錄必須在 `root` 目錄下 root = "." tmp_dir = "tmp" [build] # 只需要寫你平常編譯使用的shell命令。你也可以使用 `make` # Windows平臺範例: cmd = "go build -o tmpmain.exe ." cmd = "go build -o ./tmp/main ." # 由`cmd`命令得到的二進位制檔名 # Windows平臺範例:bin = "tmpmain.exe" bin = "tmp/main" # 自定義執行程式的命令,可以新增額外的編譯標識例如新增 GIN_MODE=release # Windows平臺範例:full_bin = "tmpmain.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
,感受實時重新載入的便利吧。
以上就是Air實現Go程式實時熱過載使用過程解析範例的詳細內容,更多關於Air實現Go程式實時熱過載的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45