我在想,为什么Bundler总是会下载已存在于我的gemset中的宝石?我的意思是,每次运行rails new
和bundle install
命令后,bundler都会下载系统中存在的相同gem。现在,我知道--local
选项可以防止此行为,但只是如果它能够首先做一个简单的检查,那真的很有意义。
编辑:对不起伙计们,看来捆绑包实际上正在使用系统中的宝石。我想其他因为他花了20秒才完成,但这是因为我的互联网速度非常慢,可能花了很多时间解决依赖关系。
答案 0 :(得分:0)
除非其中一件事情成立,否则Bundler不会重新获取宝石:
如果这对您来说是一个问题,您可以使用--local
来强制Bundler永远不要寻找其他任何东西,但您也可以指定所有宝石的版本。并确保正确的版本位于 Gemfile.lock 。
最后,Bundler只做你告诉它做的事情。当然,你也不能使用Bundler。
答案 1 :(得分:0)
bundle install
的默认值是--system
选项,它将在系统范围内安装,因此也会使用现有的宝石。
如果你使用像rvm这样的东西,你就不会看到这种行为。另请注意,bundler会记住为path
等一些参数提供的先前参数。如果它之前用于某个应用程序,它将被记住以备将来调用。
--local
将使用本地缓存 - http://bundler.io/v1.5/man/bundle-install.1.html