当サイトは、アフィリエイト広告を利用しています
当ブログもやっとGatsbyをv2からv4にversionをあげた。
その際に使用したインストール済みのパッケージに最新バージョンがあるか確認し、
アップデートするためのyarnコマンドの使い方をまとめておく。
下記のyarnコマンドを使用した。
yarn outdatedコマンドを実行することで
インストール済みのパッケージに最新バージョンがあるかどうか確認することができる
yarn outdatedコマンドを実行する
このコマンドでは確認ができるだけでアップデート自体はできない。
$ yarn outdatedinfo Color legend :"<red>" : Major Update backward-incompatible updates"<yellow>" : Minor Update backward-compatible features"<green>" : Patch Update backward-compatible bug fixesPackage Current Wanted Latest Package Type URLgatsby 2.31.0 2.32.13 4.23.1 dependencies https://github.com/gatsbyjs/
※説明のためGatsbyだけ記載
Currentは現在インストールされているversionのこと。
package.jsonで指定してあるsemverの条件の最大versionのこと
そのパッケージの最新version
yarn outdatedコマンドで見つけた古いversionのパッケージを
のどちらを使って更新する。
yarn upgrade [package-name]はpackageを指定すれば、そのパッケージのみを、指定しなければ
すべてのパッケージをWantedのバージョンにアップデートすることができる。
package.jsonは更新されず、yarn.lockが更新される
最新のメジャーバージョンに更新される
キャレットがついているためマイナーバージョンまでアップデートできる
{~"dependencies": {"gatsby": "^2.26.1",},}
実行前に現在の状態を確認する。
$ yarn outdatedinfo Color legend :"<red>" : Major Update backward-incompatible updates"<yellow>" : Minor Update backward-compatible features"<green>" : Patch Update backward-compatible bug fixesPackage Current Wanted Latest Package Type URLgatsby 2.31.0 2.32.13 4.23.1 dependencies https://github.com/gatsbyjs/
gatsbyをアップデートする
$ yarn upgrade gatsby
再度、yarn outdatedを実行するとWantedのversionまで更新されている。
$ yarn outdatedyarn outdated v1.22.10info Color legend :"<red>" : Major Update backward-incompatible updates"<yellow>" : Minor Update backward-compatible features"<green>" : Patch Update backward-compatible bug fixesPackage Current Wanted Latest Package Type URLgatsby 2.32.13 2.32.13 4.23.1 dependencies https://github.com/gatsbyjs/
package.jsonは更新されないが、yarn.lockが更新されている。
最新のパッチバージョンに更新される
チルダがついているためパッチバージョンまでアップデートできる
{~"dependencies": {"@fortawesome/free-solid-svg-icons": "~5.15.2",},}
実行前に現在の状態を確認する。
$ yarn outdatedinfo Color legend :"<red>" : Major Update backward-incompatible updates"<yellow>" : Minor Update backward-compatible features"<green>" : Patch Update backward-compatible bug fixesPackage Current Wanted Latest Package Type URL@fortawesome/free-solid-svg-icons 5.15.2 5.15.4 6.2.0 dependencies https://fontawesome.com
gatsbyをアップデートする
$ yarn upgrade @fortawesome/free-solid-svg-icons
再度、yarn outdatedを実行するとWantedのversionまで更新されている。
$ yarn outdatedyarn outdated v1.22.10info Color legend :"<red>" : Major Update backward-incompatible updates"<yellow>" : Minor Update backward-compatible features"<green>" : Patch Update backward-compatible bug fixesPackage Current Wanted Latest Package Type URL@fortawesome/free-solid-svg-icons 5.15.4 5.15.4 6.2.0 dependencies https://fontawesome.com
package.jsonは更新されないが、yarn.lockが更新されている。
全部一括でアップデートしたい場合はパッケージを指定せずに実行する
$ yarn upgrade
yarn add package-nameに@latestをつけることでLatestのversionにアップデート
することができる。
メジャーアップデートとなるのでAPIの互換性がなくてエラーが発生する可能性があるので注意。
こっちはpackage.jsonが更新される
上記に引き続き、gatsbyを最新verにしてみる
$ yarn outdatedyarn outdated v1.22.10info Color legend :"<red>" : Major Update backward-incompatible updates"<yellow>" : Minor Update backward-compatible features"<green>" : Patch Update backward-compatible bug fixesPackage Current Wanted Latest Package Type URLgatsby 2.31.0 2.32.13 4.23.1 dependencies https://github.com/gatsbyjs/
アップデートを実行
$ yarn add gatsby@latest
最新versionになったため「yarn outdated」では出力されなくなる。 package.jsonが更新されている
{~"dependencies": {"gatsby": "^4.23.1",},}
バージョン指定したい場合は下記でてきる
yarn add [package-name]@x.x.x
上記まではまずは「yarn outdated」を打って、バージョンアップがあるか確認した後に
「yarn upgrade」か「yarn add ~ @latest」を使って更新としていたが
数が多い場合は非常に面倒なので、確認と同時にアップデートを実行できる超便利コマンドがある。
yarn upgrade-interactiveを実行すると下記のような形で一覧がでる。
upgrade-interactiveは「yarn outdated」と「yarn upgrade」を対話的に行うことができるが
メジャーアップデートはできない。
※yarn upgradeと同様にpackage.jsonは更新されず、yarn.lockのみが更新される
$ yarn upgrade-interactiveyarn upgrade-interactive v1.22.10info Color legend :"<red>" : Major Update backward-incompatible updates"<yellow>" : Minor Update backward-compatible features"<green>" : Patch Update backward-compatible bug fixes? Choose which packages to update.devDependenciesname range from to url( ) @material-ui/core ^4.11.3 4.11.3 ❯ 4.12.4 https://mui.com/dependenciesname range from to url( ) @fortawesome/fontawesome-svg-core ^1.2.34 1.2.34 ❯ 1.3.0 https://fontawesome.com(*) @fortawesome/free-brands-svg-icons ^5.15.2 5.15.2 ❯ 5.15.4 https://fontawesome.com( ) @fortawesome/free-regular-svg-icons ^5.15.2 5.15.2 ❯ 5.15.4 https://fontawesome.com(*) @fortawesome/free-solid-svg-icons ^5.15.2 5.15.2 ❯ 5.15.4 https://fontawesome.com~
yarn upgrade-interactive --latestを実行すると下記のような形で一覧がでる。
upgrade-interactiveは「yarn outdated」と「yarn add [package-name]@latest 」を対話的に行うことができる
※メジャーバージョンに更新され、package.jsonが書き変わる。
$ yarn upgrade-interactive --latestyarn upgrade-interactive v1.22.10info Color legend :"<red>" : Major Update backward-incompatible updates"<yellow>" : Minor Update backward-compatible features"<green>" : Patch Update backward-compatible bug fixes? Choose which packages to update. (Press <space> to select, <a> to toggle all, <i> to invert selection)dependenciesname range from to url>( ) @fortawesome/fontawesome-svg-core latest 1.2.34 ❯ 6.2.0 https://fontawesome.com( ) @fortawesome/free-brands-svg-icons latest 5.15.4 ❯ 6.2.0 https://fontawesome.com( ) @fortawesome/free-regular-svg-icons latest 5.15.2 ❯ 6.2.0 https://fontawesome.com( ) @fortawesome/free-solid-svg-icons latest 5.15.4 ❯ 6.2.0 https://fontawesome.com( ) @fortawesome/react-fontawesome latest 0.1.14 ❯ 0.2.0 https://github.com/FortAwesome/react-fontawesome
マイナーバージョンをあげる作業は「yarn upgrade-interactive」を使えば簡単にできた。
メジャーバージョンをあげる時は「upgrade-interactive --latest」を使えば、一括で行うことは
できるが、エラーが発生する可能性が高いので一つずつ丁寧にやった方がいいような気がする。
※実際にエラーを吐きまくったので...
下記を参考にさせていただきました。