捆绑包可以告诉我Gemfile中哪些宝石有更新版本(例如,干捆绑更新)

Jef*_*ton 38 ruby bundler

有没有办法在假装模式下运行bundle update,类似于Rails生成器的-p(假装)标志或cap -n(干运行)标志?

我想象的是:

$> bundle update -p
Fetching source index for http://rubygems.org/
The following gems have updated versions:
...
list of gems
...
Run Code Online (Sandbox Code Playgroud)

Jef*_*ton 51

Bundler 1.1引入了一个新的"过时"功能,这正是我想要的.帕特肖内西有一个伟大的写了对新功能.用他的话说,bundle outdated:

显示它将下载和安装的宝石,但实际上并没有这样做.这使我可以自由地检查列表并更新我想要的宝石.

这样可以快速查看更新所需的宝石,而无需实际修改源和本地宝石.谢谢Bundler!

  • 似乎`bundle outdated`将显示更新版本的gem,但不会考虑在`Gemfile`中指定的版本限制,因此它可能不会显示与完整更新相同的结果.例如,我在我的Gemfile中指定了`gem'trail','〜> 3.1.3',并且`bundle update rails`按预期工作,但`bundle outdated`显示`*rails(3.2.8> 3.1. 3)`. (7认同)
  • 看起来版本捆绑器v1.5中添加了`--strict`选项.我刚试了一下它似乎像@zole期待的那样工作.资料来源:http://bundler.io/v1.7/bundle_outdated.html (6认同)
  • @zole,这可以被视为优势或劣势.例如,我通常会为每个gem指定gem版本,因此如果查看这些版本,那么`bundle outdated`对我来说将毫无用处.但对于像你这样只限制某些宝石版本的人来说,你最好还是进行版本检查.所以我认为一个可选的论证将是我们两个案例的解决方案. (2认同)