前言
公司想着让项目部署变得容易,我们决定将前端静态资源也打包进执行文件中,因此当我执行二进制执行文件时,整个web程序就将启动,并不依赖任何前端文件。
因此寻觅了一个比较好用的库 github.com/gobuffalo/packr
。
安装
1 2 3 4 5 |
1.安装工具 go get -u github.com/gobuffalo/packr/packr 2.安装依赖 go get -u github.com/gobuffalo/packr |
请注意以上两个都要安装
使用方法如下
先看代码
main.go 文件
1 2 3 4 5 6 7 8 9 10 11 12 13 |
package main import ( "github.com/gobuffalo/packr" "net/http" ) func main() { // dist 目录下拥有前端用vue打包好的一系列静态资源 box:=packr.NewBox("./dist") http.Handle("/",http.FileServer(box)) http.ListenAndServe(":8080",nil) } |
在 main.go 目录所在路径执行命令
1 2 |
packr |
此时它会生成一个 a_main-packr.go
文件
紧接着再用 GO 去编译它
1 2 |
go build main.go a_main-packr.go |
生成的二进制执行文件已经将目录打包进去了,启动就能看到效果
最后
由于生成的a_main-packr.go
文件较为巨大,最后可以使用命令
1 2 |
packr clean |
来删除a_main-packr.go
文件
© 著作权归作者所有
文章评论(0)