如何在Gemfile中自动添加gems版本

时间:2015-05-07 15:13:56

标签: ruby-on-rails

如何冻结Gemfile中的gem以防止gems依赖冲突

我的Gemfile中可能有以下宝石。

一段时间后,我的合作伙伴检查项目并运行捆绑安装,某些宝石的版本号可能更高

它们之间可能存在一些冲突。

是否有任何工具可以使用当前可用的宝石向以下宝石添加固定版本号。

 55 gem 'kaminari'
 56 gem 'rspec'
 57 gem 'awesome_print', require: 'ap'
 58 gem 'tinymce-rails'
 59 gem 'haml-rails'
 60 gem 'taps'
 61 gem 'analytics-ruby'
 62 gem 'bourbon'
 63 gem 'cancancan'
 64 gem 'rb-readline'

例如,如果我当前的项目中gem'kaminari'的版本是1.0, 然后

在Gemfile中将gem 'kaminari'更改为gem 'kaminari', '1.0'

但是Gemfile中有太多的宝石,

有什么工具可以帮我吗?

2 个答案:

答案 0 :(得分:3)

您可以查看gemfile.lock或在终端中运行bundle show以获取您正在使用的应用程序宝石和版本的列表。但是,这也将包括gem依赖项。看起来宝石pessimize会帮助你。它声明它将:

  

使用悲观约束运算符将版本号添加到Gemfile中的所有gem

因此,您可以安装并运行它,它会为您的应用添加版本号,~>运算符只允许轻微的版本颠簸。

答案 1 :(得分:3)

您应该查看Pessimize gem,它会自动为Gemfile中的所有gem添加版本号。

只需安装gem:

gem install pessimize

运行它:

pessimize