ruby-on-rails - 检测生产中缺少宝石
问题描述
我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)。我不想再做这样的事情,但我可能会不小心,所以我想检测它。
解决方案
从您的描述中不清楚您的问题是什么。但是请bundle list
查看已安装的 gem https://bundler.io/man/bundle-list.1.html
此外,尝试bundle config
如果您看到任何without
您不期望的 's,您可以运行bundle config --delete without
以删除它们。