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


類似的工具以前有介紹過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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM