使用Gemfile中的环境变量部署到Heroku
我最近更新了我们的Gemfile作为pry pry-byebug
和bye-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
我希望这可以帮助任何面临类似问题的人。