packr 方便的潜入静态资源文件到golang 二进制文件中
阅读原文时间:2023年07月09日阅读:1

类似的工具以前有介绍过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