bundlerでGemfile.lockの依存を考慮したアップデート可能なバージョンを表示する

バージョン

  • bundler 2.1.4

問題

bundlerにはoutdatedっていうコマンドがある。
これは使用しているgemでアップデートがある場合に、そのバージョンを表示してくれるのだけど、各gemの依存関係を考慮しない。
たとえば、gem childはgem parentのv0.9.0台のバージョンが必要だけど、gem parentはv1.0.0がリリースされている場合、outdatedでは

* parent (newest 1.0.0, installed 0.9.1)

みたいに表示される。でもこれが表示されたところで、gem childがgem parentの0.9.0台を要求している以上、gem parentをアップデートすることはできない。
なのでこのバージョンは表示してくれなくていい。

解決方法

outdatedコマンドには--strictオプションがある。
これを使うと、「依存関係を考慮して現在アップデートできる最新のバージョン」を表示してくれる。
なので、先の例の場合にbundle outdated --strictを実行すると、

Bundle up to date!

と表示される。
個人的にはstrictがデフォルトでいいレベルなんだけど・・。

タイトルとURLをコピーしました