インストールしているパッケージのアップデート作業をしているときに、あるパッケージ(A)と別のパッケージ(B)で使っている依存パッケージのバージョンに差があり、古いバージョンの依存パッケージを使っている B の方でエラーが出てしまっていました。
B のパッケージの方で依存パッケージを更新してくれれば一番いいのですが、今回はその気配もないので、B の問題が出ている依存パッケージのバージョンを古いバージョンで固定するというやり方で解決しました。
そのプロジェクトでは Yarn を使っているので resolutions
フィールドを使います。
resolutions の書き方
package.json
に以下のように書きます。
"resolutions": {
"b/hoge": "1.0.0",
}
このように書くことで、B は依存パッケージ hoge
の 1.0.0
を使うようになります。
今回僕がこの問題に当たってしまったのは babel
関係のパッケージだったのですが、パッケージアップデートの時によく依存パッケージバージョン問題は起きるので、もし同じような問題が起きた場合はお試しください。
ちなみに npm
を使っている場合は overrides
フィールドを使うようです。書き方も resolutions
と少し違います。
同様の問題が起きた場合は、上記の方法をお試しください。
なお、Yarn のバージョンによって書き方が異なる可能性があるため、注意が必要です。詳細は公式ドキュメントを参照してください。