bundle install 中的 --without 选项有什么意义?

What's the point of the --without option in bundle install?

如果您的应用程序不需要某个组中的 gem,为什么不能让 bundler 使用常规 bundle install 安装它们,然后干脆不使用它们?这只是一个清洁问题 - 即没有安装你不需要的额外东西 - 或者它会破坏某些东西吗?

它看起来确实只是一个 清洁度 问题,但它是一个 性能 问题,并且可能是一个 开销 问题,我将解释:

  • 清洁度 文件系统中的 gem 较少。更少的网络流量使用(这对某些人来说可能代价高昂,谁知道呢)。

  • 性能 涉及减少捆绑和部署应用程序所需的时间。在生产环境中,节省几毫秒或几秒有时很重要。

  • 开销是最不可能的原因。 Bundler 只会自动从 :default 组中选择 require 宝石,除非您在 Bundler.require 语句中指定其他组。

性能超过清洁度开销似乎是[=的最佳理由14=]


使用 --without 参数也是 Bundler "remembered",所以请注意这一点。它被设计为 "set and forget" 在目标环境中。

参考:http://bundler.io/v1.9/groups.html