我正在为 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
- 1 回答
- 0 关注
- 145 浏览
添加回答
举报
0/150
提交
取消