使用Gemfile中的环境变量部署到Heroku

我最近更新了我们的Gemfile作为pry pry-byebugbye-bug导致Rubymine因为我的一些同事而崩溃。 由于我们中的一些人使用其他编辑器,我已经为我们的Gemfile添加了一个环境变量:

 if ENV["USE_DEBUGGER"] gem "pry-byebug" gem "byebug" end 

这在我们的本地机器上运行良好,但部署到Heroku会导致以下错误: gist

我已经尝试运行bundle install并提交一个新的Gemfile.lock但是没有任何改变。 摆脱控制流声明或简单地删除gem修复了这个问题。在同一个提交中,我将所需的ruby版本提升到2.2.0是没有价值的。

有没有办法在没有吹Heroku的情况下在Gemfile使用条件语句?

将条件包装在一个组中,并在部署时尝试BUNDLE_WITHOUT 。 REF

 group :byebug do if ENV["USE_DEBUGGER"] gem "pry-byebug" gem "byebug" end end 

heroku config:add BUNDLE_WITHOUT="byebug"

好吧,在与RubyMine玩杂耍之后,我意识到当require pry和任何其他相关的调试gem时会出现问题。 我设法通过将我的Gemfile更新为以下内容来解决此问题:

  if ENV["USE_DEBUGGER"] gem "pry-byebug" gem "byebug" else gem "pry-byebug", require: false gem "byebug", require: false end 

我希望这可以帮助任何面临类似问题的人。