heroku - 如何在 Heroku 上运行 go generate

标签 heroku go

我正在使用 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
  • 部署您的应用

around this line

more on buildpacks

关于heroku - 如何在 Heroku 上运行 go generate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45907131/

相关文章:

python - 获取错误 : You've reached your account limit of 3 concurrent processes with Heroku

node.js - 为新的heroku进程分配子域

ruby-on-rails - ActionView::Template::Error(未定义方法 `silence' 为)

go - 为什么 post 请求在 gin golang 中不起作用?

pointers - 类型将接口(interface)指针转换为接口(interface)指针

ruby-on-rails - 英雄数据库 :pull Failed to connect to database NoMethodError

python - celery + RabbitMQ + "A socket error ocurred"

go - 如何将标志值传递给 golang urfave cli 中的子命令

go - 为什么这个 goroutine 会阻塞?

amazon-web-services - 如何启用认知用户 MFA