2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

yarn upgrade は間接依存のバージョンを上げない

Posted at

起こったこと

Vue.js のプロジェクトに Storybook を導入していて、そのために vue-cli-plugin-storybook をインストールしていた (詳細を書くが、以降の本筋に具体的な npm パッケージ名は関係ない)。
それをインストールした当時は Storybook 5.1 が最新としてインストールされ、yarn.lock ファイルにもそれが記録された。

その後、Storybook 5.2 がリリースされたので利用しようと yarn upgrade-interactive コマンドでアップグレード作業を実施したが、vue-cli-plugin-storybook が依存する @storybook/vue5.1 のままで、アップグレードできなかった。yarn upgrade, yarn outdated などのコマンドも同様。

原因

Yarn の設計によるもの (参考: Upgrading sub-dependencies (upgrade --deep) · Issue #2394 · yarnpkg/yarn · GitHub)。
yarn upgrade は package.json に書かれた依存のみ更新し、依存の依存などは更新しない。

対策

バージョンをコントロールしたい、つまり直接依存するものは package.json に書くようにする。

または yarn upgrade --deep を利用する。--deep オプションはドキュメントに書かれていないようだし、yarn upgrade-interactiveyarn outdated で使えなかったので非公式かもしれない。
個別ではなく yarn.lock 全体がアップグレードされるような挙動をしていた。正直あまりよくわかっていない。

または yarn remove から yarn add をする。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?