Ruby on rails 如何告诉bundler忽略不带';不存在?

Ruby on rails 如何告诉bundler忽略不带';不存在?,ruby-on-rails,ruby,bundler,Ruby On Rails,Ruby,Bundler,我的组织有许多内部gem用于自动化测试,但不需要用于生产部署。我正在尝试使用Bundler,因此在我的Gemfile中,我将这些宝石包装在: group :test, :development do gem 'dashboard_summary' end 但是,当我跑步时: $ bundle install --without staging development test 我还是会 Could not find gem 'dashboard_summary (>= 0) r

我的组织有许多内部gem用于自动化测试,但不需要用于生产部署。我正在尝试使用Bundler,因此在我的Gemfile中,我将这些宝石包装在:

group :test, :development do
    gem 'dashboard_summary'
end
但是,当我跑步时:

$ bundle install --without staging development test
我还是会

Could not find gem 'dashboard_summary (>= 0) ruby' in the gems available on this machine.

我试图理解为什么Bundler在我告诉它的时候没有忽略这个gem。

您没有定义任何包括暂存、开发和测试的组。您的团队只进行了测试和开发

Bundler试图忽略一个包含所有三个名称的组,所以您可以将staging添加到该组中

group :test, :development, :staging do
    gem 'dashboard_summary'
end
或者你可以使用

 $ bundle install --without test development

我不知道你为什么在那里有
staging
?但这应该行得通

 bundle install --without test development
您还可以设置
BUNDLE\u中记录的配置环境变量,而不使用中的

你可以用

gem 'dashboard_summary', require: false

这不会在启动时加载gem,当您想要使用gem时,您必须需要它。如果由于依赖关系而需要在GEM文件中保留
dashboard\u summary
,这可能会有所帮助,但可以节省加载所需的时间,而不会出现现在出现的错误。至少可以尝试一下。

这是预期的行为。发件人:

虽然
--without
选项将跳过在指定组中安装gem,但它仍将下载这些gem并使用它们解决gem文件中每个gem的依赖关系(5)


虽然最新的
Gemfile.lock
可能表明不需要再次解析依赖项,但即使在这种情况下,似乎所有gem都已下载。

发布您的
Gemfile
dashboard\u summary
可能是某些其他gem的依赖项您如何指定
dashboard\u summary
gem?您是否有多个
源代码
行,如果有,您如何避免内部存储库中的错误在生产中不可用?我不确定“安装”和“下载”之间的区别。我以为ruby被翻译了。bundler是否有一个功能可以实现我的目标(即完全忽略生产中的某些gem?)安装会将下载的gem包提取到适当的位置,并在必要时编译C扩展。通过这种方式,它位于
gem列表中
,您可以
要求
它。看起来
dashboard\u summary
是其他gem的依赖项。在这种情况下,你不能忽视它。