我正在使用 http://github.com/tmthrgd/go-bindata在 Go 可执行文件中嵌入静态文件和模板。它需要运行 go generate
来运行读取每个文件并将二进制表示写入标准 go 文件的 Go 代码。 go generate
必须在构建过程之前触发。
是否有机会配置 Heroku 来处理这个问题?
最佳答案
go generate
应该在开发时在本地运行,而不是在 heroku 上运行。如果你在 heroku 上运行它会导致很难调试问题。如果 go generate
有意想不到的结果,您将无法轻松检查它。
您可以使用类似 modd 的工具运行 go generate
或者用一个 git 钩子(Hook)。
让 git 跟踪 go generate
的结果也意味着您可以跟踪哪些更改影响了生成的代码。
在像 ruby 这样的语言中,可能习惯于在服务器上运行 bundle install
并忽略来自 git 的依赖项。对于 go 程序,情况并非如此。依赖项应该由 git 提供和跟踪。生成的代码也是如此。
对于这种情况,完全不建议其余部分,我永远不会做这样的事情。
- fork the go heroku buildpack
- 添加一行以运行
go generate
- 使用你修改过的 go heroku buildpack
- 部署您的应用
关于heroku - 如何在 Heroku 上运行 go generate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45907131/