Yarn でのパッケージアップデート時の依存パッケージの解決方法

March 02, 2023

インストールしているパッケージのアップデート作業をしているときに、あるパッケージ(A)と別のパッケージ(B)で使っている依存パッケージのバージョンに差があり、古いバージョンの依存パッケージを使っている B の方でエラーが出てしまっていました。

B のパッケージの方で依存パッケージを更新してくれれば一番いいのですが、今回はその気配もないので、B の問題が出ている依存パッケージのバージョンを古いバージョンで固定するというやり方で解決しました。

そのプロジェクトでは Yarn を使っているので resolutions フィールドを使います。

resolutions の書き方

package.json に以下のように書きます。

"resolutions": {
  "b/hoge": "1.0.0",
}

このように書くことで、B は依存パッケージ hoge1.0.0 を使うようになります。

今回僕がこの問題に当たってしまったのは babel 関係のパッケージだったのですが、パッケージアップデートの時によく依存パッケージバージョン問題は起きるので、もし同じような問題が起きた場合はお試しください。

ちなみに npm を使っている場合は overrides フィールドを使うようです。書き方も resolutions と少し違います。

同様の問題が起きた場合は、上記の方法をお試しください。

なお、Yarn のバージョンによって書き方が異なる可能性があるため、注意が必要です。詳細は公式ドキュメントを参照してください。

参考


Profile picture

Johnny Okafuji
フロントエンドエンジニア / ビートルズバンド Crescendo Four のジョン・レノン担当。/ Love Darts🎯 / アナザーヒストリーエッセンシャルクラス修了&引き続きコーチング勉強中 / コーチング関係の記事は note に書いてます。
Twitter: @johnykei
note: https://note.com/johnykei

© 2023 All rights reserved.