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