【发布时间】:2019-11-05 21:53:54
【问题描述】:
在我的 RoR 应用程序在生产中工作之前,我会使用 bundle install --without development test,因为我想删除仅用于开发或测试的 gem,但前几天,这导致了问题。
我写了一些代码,它在开发中工作,但它包含 gem 提供的模块,它是作为开发 gem 的依赖项安装的。我无意中使用了,所以我没有注意到部署失败。所以我想检测它。我正在使用 CI,所以也许我可以注意到我是否在生产中执行相同的 bundle install 并且出现了一些问题,但是如果我这样做,CI 将需要很长时间,所以我真的不想这样做。我很想听听你的想法。
edit:我想你还没明白我的意思,所以让我再解释一下。
例如,我的 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)。我不想再做这样的事情,但我可能会不小心,所以我想检测它。
【问题讨论】:
-
试试下面 kurupt_89 的建议。如果您执行
cat .bundle/config,您应该会看到您通过--without标志(以及其他)设置的设置。您可以手动编辑该文件,或运行 config delete 命令。 --without 标志有点傻,默认情况下,它会将其作为配置设置写入,并且即使您停止传递它也会在捆绑命令中持续存在 -
对不起我笨拙的英语。我在我的问题中添加信息。
标签: ruby-on-rails ruby rubygems