Go项目踩坑:go get下载超时,goFrame框架下的go项目里将vue项目的dist同步打包发布,go项目打包并压缩
- go get下载超时
- goFrame打包静态资源
- vue项目打包
- gf pack生成go文件
- 静态资源使用
- 打包发布go项目
- 交叉编译,省略一些不必要的信息
- 通过upx进行再一次的压缩
- 将可执行文件上传至服务器
go get下载超时
//解决下载超时问题
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
goFrame打包静态资源
vue项目打包
npm run build
将打包生成的dist文件夹放入go项目中
gf pack生成go文件
将任意文件/目录打包为Golang源码文件,并且编译到可执行文件中,随着可执行文件发布
gf pack template packed/vue.go -n packed
template下的dist文件打包生成go的文件放在packed文件夹下
Add将content解压并添加到默认资源对象。prefix是非必要参数,表示存储到当前资源对象中的每个文件的前缀
生成的文件内容:
静态资源使用
gres.Dump()查看资源管理器内容
设置serverRoot= “template/dist”
通过import引入vue.go文件,可以随着build同步打包
import (
"github.com/gogf/gf/v2/net/ghttp"
"os"
_ "foxess.ems/packed"
"github.com/gogf/gf/v2/frame/g"
)
func main() {
s := g.Server()
s.SetPort(4444)
router.Bind(s)
//gres.Dump()
s.SetServerRoot("template/dist")
s.SetFileServerEnabled(true)
s.BindHandler("/", func(r *ghttp.Request) {
path, _ := os.Getwd()
r.Response.WriteTpl(path+"/template/dist/index.html", g.Map{
"host": r.Host,
"version": def.VERSION,
})
})
s.Run()
}
打包发布go项目
交叉编译,省略一些不必要的信息
CGO_ENABLED=0 GOOS=linux GOARCH=arm go build -ldflags "-s -w" //交叉编译,压缩
通过upx进行再一次的压缩
sudo upx -9 --brute foxess.ems
将可执行文件上传至服务器
scp foxess.ems xxx@xx.xxx.xx.xxx:/home/foxess.ems
运行
sudo ./foxess.ems