是否可以要求Gemfile之外的文件?
例如,我正在开发一个gem,当我正在开发时,我使用pry
而不是IRB,并使用debugger
进行调试。 但是,我不希望可能的贡献者必须安装它们(因为它们可能不需要它们)。 我的第一个想法是将它们放入Bundler组:
source :rubygems gemspec group :extras do gem "pry" gem "debugger" end
然后人们可以使用:
$ bundle install --without extras
但我希望它是默认的,它们没有安装。 什么是完美的是他们不在我的Gemfile
,但我仍然可以要求它们(如果它们存在于计算机上)。 这个解决方案没问题,因为我不关心它们被锁定的版本。 可以吗?
bundle install
是“选择退出” – 无论你指定 – 没有--without some_group
,它安装一切。
如果你绝对不想在你的Gemfile中拥有一个给定的gem,那么你可以在你的bundle之外gem install
那个rogue gem。 然后它会在irb
和直接ruby
(但是如果你试图在bundle exec
下运行的代码中require
它,你很明显会遇到错误)。
您可以根据环境变量将条件添加到Gemfile中。 例:
source :rubygems gemspec if ENV['WITH_EXTRAS'] == '1' gem "pry" gem "debugger" end
然后,如果将环境变量设置为'1'
,则仅安装/加载gem,例如WITH_EXTRAS=1 bundle install
。