將bundler與一般項目和Rails專門一起使用時,只能訪問Gemfile中定義的gem。雖然這是有道理的,但它可能是有限的。大多數情況下,當我想使用某個RSpec格式化器時,我發現它是有限的,而其餘的團隊不使用它。除非它在Gemfile中,否則它是不可訪問的。如何在使用捆綁器時使用不在Gemfile中的gem?
任何方式,否則我必須將它添加到Gemfile?
更新:我的問題不是Bundler而是Spork。在沒有Spork的情況下運行RSpec時,我沒有使用任何我想要的格式化程序的問題。
更新#2:它看起來像使用Bundler仍然是問題的原因。使用Spork和不使用Spork的不同之處在於,在不使用Spork的情況下運行RSpec時,它會在加載項目並進入Bundler「沙箱」之前加載格式化程序。
隨着捆紮機:
$ bundle exec irb
>> require 'fivemat'
LoadError: cannot load such file -- fivemat
from (irb):1:in `require'
from (irb):1
from /Users/arikfr/.rvm/rubies/ruby-1.9.3-p194/bin/irb:16:in `<main>'
沒有捆紮機:
$ irb
>> require 'fivemat'
=> true
你爲什麼不fivemat添加到您的的Gemfile? –
「當我想使用某個RSpec格式化程序時,大多數情況下我發現它是有限的,而其餘的團隊不使用它。」這就是爲什麼。有時候我也想使用在OS/X上支持但在Ubuntu上不支持的gem(反之亦然)。 – arikfr
的OS X/Linux的問題可以在Gemfile中通過檢查Ruby平臺https://github.com/carlhuda/bundler/issues/663#issuecomment-2849045 –