首页 > 解决方案 > 检测生产中缺少宝石

问题描述

bundle install --without development test在我的 RoR 应用程序在生产中工作之前这样做,因为我想删除仅用于开发或测试的 gem,但是前几天,这导致了问题。
我写了一些代码,它在开发中工作,但它包含 gem 提供的模块,它作为开发 gem 的依赖项安装。我无意中使用了,所以我没有注意到部署失败。所以我想检测它。我正在使用 CI,所以也许我可以注意到我是否bundle install在生产中做同样的事情并且出现了一些问题,但如果我这样做,CI 将需要很长时间,所以我真的不想这样做。我很想听听你的想法。

编辑:我想你还没有明白我的意思,所以让我再解释一下。

例如,我的 Gemfile 如下所示;

ruby '2.5.7'

gem 'rails', '5.2.2.1'

gem 'pg', '>= 0.18', '< 2.0'

gem 'puma', '~> 3.11'

...

group :development, :test do

  gem 'overcommit'
  gem 'rails_best_practices'
  gem 'rubocop' # <- this gem also install unicode_display_width(which has `Unicode::DisplayWidth`) as dependency
end

group :development do
  gem 'brakeman'
  gem 'debase'
  gem 'rack-mini-profiler', require: false
  gem 'ridgepole'
  gem 'ruby-debug-ide', '0.6.0'
...
end

group :test do
  gem 'simplecov'
  ...
end

Unicode::DisplayWidth在我的应用程序中使用了,因为我完全认为它是 ruby​​ 最初拥有的库(如 csv)。我不想再做这样的事情,但我可能会不小心,所以我想检测它。

标签: ruby-on-railsrubyrubygems

解决方案


从您的描述中不清楚您的问题是什么。但是请bundle list查看已安装的 gem https://bundler.io/man/bundle-list.1.html

此外,尝试bundle config如果您看到任何without您不期望的 's,您可以运行bundle config --delete without以删除它们。


推荐阅读