類似的工具以前有介紹過statik,今天使用的工具是packr 也是很方便的golang tools
安裝
go get -u github.com/gobuffalo/packr/packr
或者我們可以直接使用二進制文件
下載地址:https://github.com/gobuffalo/packr/releases
之后配置path 變量即可
簡單項目
- 項目結構
├── go.mod
├── go.sum
├── main.go
└── templates
└── app.t
- 項目創建說明
項目使用go mod 進行包管理
go mod init github.com/rongfengliang/packr-demo
- 代碼說明
main.go
package main
import (
"html/template"
"log"
"os"
"github.com/gobuffalo/packr"
)
func main() {
box := packr.NewBox("./templates")
t, err := template.New("dalongdemo").Parse(box.String("app.t"))
if err != nil {
log.Fatal(err)
}
err = t.Execute(os.Stdout, "dalongdemo")
if err != nil {
log.Fatal(err)
}
}
構建
使用packr 工具,方便簡化我們代碼的處理,同時包含了,自動生成的代碼
- build
packr build
效果
├── README.md
├── go.mod
├── go.sum
├── main-packr.go
├── main.go
├── packr-demo
├── packrd
│ └── packed-packr.go
└── templates
└── app.t
- 運行
./packr-demo
hello demo dalongdemo
生成代碼效果
說明
packr 使用起來還是比較清晰方便的,可以幫助我們簡化好多應用打包上的問題,實際上我們結合goreleaser
會更加方便
參考資料
https://github.com/rongfengliang/packr-demo
https://github.com/gobuffalo/packr