是否可以覆盖gemfile以进行本地开发?

时间:2018-02-19 10:08:16

标签: ruby rubygems gemfile

我们的git存储库中当前有一个Gemfile。但是,我的环境中只使用本地的宝石(我的团队并没有使用它)。为了使用它,我必须将它添加到我们的Gemfile,但每次我检查我们的主/ dev主分支时,我必须删除它,因为与跟踪的gemfile冲突。

我想要的是像Gemfile.local这样的东西,它将继承从Gemfile导入的宝石,但也允许在那里导入新的宝石以仅在我的机器上使用。 .gitignore中将忽略此文件。这甚至可能吗?

2 个答案:

答案 0 :(得分:6)

设置BUNDLE_GEMFILE环境变量:

BUNDLE_GEMFILE=Gemfile.local bundle exec rails c

仅在Gemfile.local put require_relative 'Gemfile'之上提供“delta”(或Bundler::Dsl#eval_gemfile,如@MichaelKohl在评论中所建议的那样。)

答案 1 :(得分:1)

将以下代码放在Gemfile.local的顶部,以加载现有的gemfile

if File.exists?('Gemfile') then
  eval File.read('Gemfile')
end

它将从现有Gemfile加载所有宝石。您也可以根据需要添加新宝石。

运行以下命令以从新Gemfile.local安装gem:

bundle install --gemfile=Gemfile.local