我在我的RoR应用程序投入生产之前做了bundle install --without development test
,因为我想删除仅用于开发或测试的gem,但是前一天,这引起了问题。
我写了一些代码,它可以在开发中使用,但是它包含了gem提供的模块,该模块是作为development 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)。我不想再做这样的事情,但是我可能会粗心大意,所以我想发现它。