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

use*_*188 3 ruby-on-rails

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

我的 Gemfile 中可能有以下 gem。

一段时间后,我的伙伴签出项目并运行bundle install,一些 gems 可能有更高的版本号

而且它们之间可能会有些冲突。

是否有任何工具可以使用当前可用的 gem 将固定版本号添加到以下 gem。

 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'
Run Code Online (Sandbox Code Playgroud)

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

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

但是Gemfile里面的gem太多了,

有什么工具可以为我做到这一点吗?

Nic*_*hko 6

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

只需安装 gem:

gem install pessimize

并运行它:

pessimize


Ari*_*Ari 3

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

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

因此,您可以安装并运行它,它会将版本号添加到您的应用程序中,并且运算~>符仅允许较小的版本更新。