npmとcomposerのauditとアップデートについて
きっと忘れるのでメモ
Composer
脆弱性を見つける
composer audit
パッケージを指定してアップデート
composer update league/commonmark
パッケージを指定しないとマイナーバージョンアップを一括で行う。
composer update
開発環境でアップデートしたcompose.lockを本番環境にもってきて展開する。
composer install --no-dev --optimize-autoloader
本番環境用に「すべてのクラスを classmap に詰め込み、PSR-4 や PSR-0 の探索をスキップ」することで高速化するらしい。
composer install --no-dev --optimize-autoloader --classmap-authoritative
メジャーバージョンアップデートの場合はパッケージ名とバージョン名も付けてrequireする。
composer require monolog/monolog:^2.0
バージョンは、^だとメジャーバージョン固定でマイナーバージョンをアップデートしていく。
~だとマイナーバージョン固定でメンテナンスバージョンをアップデートしてく。
npm
脆弱性を見つける
npm audit
devDependencyは無視して脆弱性を見つける。
npm audit --omit=dev
脆弱性を見つけたものに対してアップデートする。ただし、メジャーバージョンアップがかかるものはしない。
npm audit fix
破壊的アップデートができるが、パッケージのメジャーバージョンアップどころか、メジャーバージョンダウンまでしてしまうからおススメできない。
npm audit fix --force
パッケージ(foo-package)を指定してアップデート。ただし、メジャーバージョンアップデートは行わない。audit fixとの違いは、audit fixは脆弱性がなければアップデートしないこと。
また、foo-packageが依存しているサブパッケージに更新があってもアップデートはしない。ただし、foo-packageをアップデートしたことで必要とするサブパッケージのバージョンが上がったのであればそのバージョンを満たすようにアップデートする。
npm update foo-package
メジャーバージョンアップデートも含めて最新版にするには、installコマンドでバージョン指定をする
npm install package@latest
あるいは、package.jsonを書き換えてupdateする。