Yarnを使ったプロジェクトでよく使うメンテナンス系コマンドまとめ
2019-04-20
Yarnで管理されたプロジェクトを保守するのによく使うコマンドまとめです。
脆弱性のあるパッケージの検出
脆弱性のあるパッケージを使っていないか調べる時はyarn audit
を使うと簡単にチェックできます。
依存で巻き込まれてインストールされたパッケージも含めて脆弱性のあるバージョンのパッケージが無いかチェックできます。
$ yarn audit
yarn audit v1.15.2
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ high │ Cross-Site Scripting │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ @nuxt/devalue │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >=1.2.3 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ nuxt │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ nuxt > @nuxt/builder > @nuxt/devalue │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://www.npmjs.com/advisories/814 │
└───────────────┴──────────────────────────────────────────────────────────────┘
〜 中略 〜
11 vulnerabilities found - Packages audited: 20850
Severity: 1 Moderate | 10 High
✨ Done in 2.12s.
指定したパッケージとその依存パッケージを更新する
yarn audit
で検出されたパッケージを更新するにはyarn upgrade
で更新します。
パッケージを指定しなければ全部更新してくれます。
package.json
で指定されたバージョンの範囲で更新され、package.json
は変更されません。
$ yarn upgrade [pkg-name]
バージョンを指定してパッケージを更新する
パッケージ名の後ろに@
とバージョンを指定するとpackage.json
を無視して更新されます。
package.json
に指定されたバージョンも更新されます。
$ yarn upgrade left-pad@^1.0.0
とにかく最新バージョンに更新する
--latest
オプションを指定するとpackage.json
を無視して最新バージョンに更新されます。
package.json
も更新されます。
$ yarn upgrade [pkg-name] --latest
対話型の画面で確認しながら更新する
yarn upgrade-interactive
を使うとビフォーアフターのバージョンを確認しながら更新できます。
$ yarn upgrade-interactive
yarn upgrade-interactive v1.15.2
info 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)
dependencies
name range from to url
❯◯ leaflet ^1.3.1 1.3.1 ❯ 1.4.0 https://github.com/Leaflet/Leaflet#readme
◯ react ^16.3.2 16.3.2 ❯ 16.8.6 https://reactjs.org/
◯ react-dom ^16.3.2 16.3.2 ❯ 16.8.6 https://reactjs.org/
↑だと分かりませんがバージョンの上がりっぷりに応じて色がついています。
↓
と↑
で移動してスペースキーで選択します。
デフォルトだとpackage.json
で指定されたバージョンの範囲で更新しようとしますが、--latest
オプションを指定するとpackage.json
を無視して最新バージョンに更新しようとします。
$ yarn upgrade-interactive --latest
yarn upgrade-interactive v1.15.2
info 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)
dependencies
name range from to url
❯◯ leaflet latest 1.3.1 ❯ 1.4.0 https://github.com/Leaflet/Leaflet#readme
◯ react latest 16.3.2 ❯ 16.8.6 https://reactjs.org/
◯ react-dom latest 16.3.2 ❯ 16.8.6 https://reactjs.org/
◯ react-leaflet latest 1.9.1 ❯ 2.2.1 https://github.com/PaulLeCam/react-leaflet
◯ react-scripts latest 1.1.4 ❯ 2.1.8 https://github.com/facebook/create-react-app#readme