猿问

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

我正在为 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。是否有推荐的方法来管理此类项目或类似成功项目的一些示例?


皈依舞
浏览 146回答 1
1回答

一只萌萌小番薯

这是我所做的:$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
随时随地看视频慕课网APP

相关分类

Go
我要回答