我最近更新了我们的Gemfile pry-byebug
而bye-bug
导致Rubymine因某些同事而崩溃。由于我们中的一些人使用其他编辑器,我已经为我们的Gemfile添加了一个环境变量:
if ENV["USE_DEBUGGER"]
gem "pry-byebug"
gem "byebug"
end
这在我们的本地计算机上运行良好,但部署到Heroku会导致以下错误:gist
我已尝试运行bundle install
并提交新的Gemfile.lock
,但这不会改变任何内容。摆脱控制流声明或简单地删除宝石修复了这个问题。在同一个提交中,我将所需的ruby版本提升到2.2.0
有没有办法在Gemfile
中使用条件语句而不用吹Heroku?
答案 0 :(得分:0)
将条件包装在一个组中,并在部署时尝试BUNDLE_WITHOUT
。 ref
group :byebug do
if ENV["USE_DEBUGGER"]
gem "pry-byebug"
gem "byebug"
end
end
heroku config:add BUNDLE_WITHOUT="byebug"
答案 1 :(得分:0)
好吧,在与RubyMine玩杂耍后,我意识到问题发生在require
撬和任何其他相关的调试宝石时。我设法通过将我的Gemfile更新为以下内容来解决此问题:
if ENV["USE_DEBUGGER"]
gem "pry-byebug"
gem "byebug"
else
gem "pry-byebug", require: false
gem "byebug", require: false
end
我希望这可以帮助任何面临类似问题的人。