首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为每个开发者定制Gemfile?

如何为每个开发者定制Gemfile?
EN

Stack Overflow用户
提问于 2010-11-22 17:57:10
回答 7查看 3.6K关注 0票数 34

有一个常见的模式:

有许多开发人员在一个项目上工作,Gemfile(.lock)是通过供应链管理共享的。但是,如果一些开发人员想要使用不同的工具进行测试和开发呢?该怎么做呢?

问题是,当您将条件部分放到Gemfile中时,每个开发人员的Gemfile.lock也会不同,因此每次您提交SCM时都会发生冲突。

有什么简单的、广为认可的解决方案吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2017-03-24 00:49:16

我认为install_if方法(最近添加的)解决了这个问题:

代码语言:javascript
复制
install_if -> { `whoami`.strip == 'jakub' } do
  gem "pry-rails"
end

请参阅http://bundler.io/v1.14/man/gemfile.5.html#INSTALL_IF

票数 1
EN

Stack Overflow用户

发布于 2010-11-22 18:25:12

我喜欢在我的Gemfile中包含以下内容:

代码语言:javascript
复制
local_gemfile = File.dirname(__FILE__) + "/Gemfile.local"
if File.file?(local_gemfile)
  require local_gemfile
end

我在gitignore也有Gemfile.local和Gemfile.lock。我知道我不应该这样做,但我不认为这些警告(比如你在问题中提到的)是值得的。

捆绑包1.0.10的更新,截止日期为2011年3月3日

代码语言:javascript
复制
local_gemfile = File.dirname(__FILE__) + "/Gemfile.local.rb"
if File.file?(local_gemfile)
  self.instance_eval(Bundler.read_file(local_gemfile))
end

我不得不在Rails3和Bundler 1.0.10中使用它。

票数 19
EN

Stack Overflow用户

发布于 2010-11-22 18:19:58

如果你检入依赖于gem的东西,gem应该在这个gem文件中。如果存储库中的代码不依赖于gem,那么就没有必要将它放在gemfile中。因此,除非您的开发人员不签入他们的测试(这会很奇怪),否则如果您想要运行整个测试套件,您将需要所有测试的依赖项。

如果gem不是运行应用程序或其测试所必需的,那么gem就不需要在gem文件中。只需让每个开发人员为应用程序创建一个gemset (我假设您正在使用RVM,如果您不使用RVM,则应该使用),并在那里安装他们需要的任何东西,然后只需将应用程序运行所需的内容添加到gemfile中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4244182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档