为了账号安全,请及时绑定邮箱和手机立即绑定

推荐使用需要编译的静态资产的项目的 Go 项目结构和构建系统?

推荐使用需要编译的静态资产的项目的 Go 项目结构和构建系统?

Go
皈依舞 2021-11-22 10:41:33
我正在为 Web 应用程序在 Go 中制作服务器。该应用程序由 Go 代码组成,该代码将充当该应用程序的 http 服务器和 websocket 服务器。它还包括由 Go 代码提供的静态资产,例如 html/css/javascript/images/etc。我计划使用go-bindata或等效工具来打包最终的静态资产。所需的部署形式是捆绑所有静态资产的单个二进制可执行文件。但是,JavaScript 资产的构建和组织方式需要经过编译步骤,然后才能打包到 Go 源代码中以包含在已编译的二进制文件中。这将通过 npm scripts/webpack/gulp/equivalent 来完成。我已经阅读了关于推荐项目结构的官方 Go 文档,但它似乎没有解决我的用例。我不知道前端代码和后端代码应该放在同一个 git repo 中还是分开的。我不知道运行javascript编译过程、go-bindata过程和进程应该由什么构建过程来处理go build。是否有推荐的方法来管理此类项目或类似成功项目的一些示例?
查看完整描述

1 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

这是我所做的:


$GOPATH/src/github.com/myname/myproject:

-main.go //handlers and code

-static.go //generated

-static

    -js

      -foo.js

    -html

    -css

    -img

我使用github.com/mjibson/esc将所有内容转换static为static.go中的虚拟文件系统。如果有额外的任务来生成 css/js(我运行 typescript 编译器),这些可以在你嵌入资产之前运行。


所有这些都go generate与评论联系在一起:


//go:generate sass or tsc or grunt or whatever

//go:generate esc -o static.go static


查看完整回答
反对 回复 2021-11-22
  • 1 回答
  • 0 关注
  • 145 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信