packr 方便的潛入靜態資源文件到golang 二進制文件中

相似的工具之前有介紹過statik,今天使用的工具是packr 也是很方便的golang toolshtml

安裝

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 進行包管理git

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 工具,方便簡化咱們代碼的處理,同時包含了,自動生成的代碼github

  • build
packr build
 

效果golang

├── 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

生成代碼效果
app

 


 

說明

packr 使用起來仍是比較清晰方便的,能夠幫助咱們簡化好多應用打包上的問題,實際上咱們結合goreleaser 會更加方便工具

參考資料

https://github.com/rongfengliang/packr-demo
https://github.com/gobuffalo/packrui

相關文章
相關標籤/搜索