介紹一款Go項(xiàng)目熱編譯工具-gowatch
# 使用場(chǎng)景
在golang項(xiàng)目編寫(xiě)過(guò)程中,需要對(duì)項(xiàng)目不斷的進(jìn)行構(gòu)建`go build`并調(diào)試以快速發(fā)現(xiàn)問(wèn)題,而我們每次進(jìn)行手動(dòng)的進(jìn)行`go build`又太重復(fù),所以寫(xiě)了這么一個(gè)工具`gowatch`來(lái)實(shí)時(shí)的監(jiān)聽(tīng)文件的改動(dòng)并編譯。
# 快速入門
## 安裝使用
```
go get github.com/silenceper/gowatch
```
安裝完成之后,在main包目錄下執(zhí)行`gowatch`命令:

## 高級(jí)用法
支持的命令行參數(shù):
- -o : 非必須,指定build的目標(biāo)文件路徑
- -p : 非必須,指定需要build的package(也可以是單個(gè)文件)
- -args: 非必須,指定程序運(yùn)行時(shí)參數(shù),例如:-args='-host=:8080,-name=demo'
- -v: 非必須,顯示gowatch版本信息
例如:
```
gowatch -o ./bin/demo -p ./cmd/demo
```
gowatch同時(shí)也提供了配置文件的方式,支持更多的個(gè)性化的配置,默認(rèn)當(dāng)前目錄下的gowatch.yaml配置文件:
```
# gowatch.yml 配置示例
# 當(dāng)前目錄執(zhí)行下生成的可執(zhí)行文件的名字,默認(rèn)是當(dāng)前目錄名
appname: "test"
# 指定編譯后的目標(biāo)文件目錄
output: /bin/demo
# 需要追加監(jiān)聽(tīng)的文件名后綴,默認(rèn)只有'.go'文件
watch_exts:
- .yml
# 需要監(jiān)聽(tīng)的目錄,默認(rèn)只有當(dāng)前目錄
watch_paths:
- ../pk
# 在執(zhí)行命令時(shí),需要增加的其他參數(shù)
cmd_args:
- arg1=val1
# 在構(gòu)建命令時(shí),需要增加的其他參數(shù)
build_args:
- -race
# 需要增加環(huán)境變量,默認(rèn)已加載當(dāng)前環(huán)境變量
envs:
- a=b
# 是否監(jiān)聽(tīng) ‘vendor’ 文件夾下的文件改變
vendor_watch: false
# 不需要監(jiān)聽(tīng)的目錄名字
excluded_paths:
- path
# main 包路徑,也可以是單個(gè)文件,多個(gè)文件使用逗號(hào)分隔
build_pkg: ""
# build tags
build_tags: ""
# 是否禁止自動(dòng)運(yùn)行
disable_run: false
```
項(xiàng)目地址:https://github.com/silenceper/gowatch
>加入Golang興趣小組,關(guān)注公眾號(hào)“學(xué)點(diǎn)程序”,并回復(fù)“入群”
> 關(guān)注"學(xué)點(diǎn)程序"公眾號(hào),了解更多干貨內(nèi)容 
浙公網(wǎng)安備 33010602011771號(hào)