🎃
Composerの依存パッケージを削除する
最近Composerの依存パッケージを削除する機会があったのでその時の手順をメモとして残しておきます。
手順
その1
composer remove パッケージA --no-update
オプションに--no-update
を付けて実行しているので、composer.jsonから指定したパッケージの記述だけを削除します。
その2
composer u --dry-run
Loading composer repositories with package information
Updating dependencies
Lock file operations: 0 install, 2 updates, 3 removals
- Removing パッケージD
- Removing パッケージB
- Removing パッケージA
- Upgrading パッケージE
- Upgrading パッケージC
オプションに--dry-run
を付けることで、実際には削除や更新を行わないようにしています。
composer.jsonから記述が消えたパッケージとそのパッケージが依存しているパッケージが消えることを確認します。
その3
composer u パッケージA パッケージB パッケージD
Loading composer repositories with package information
Updating dependencies
Lock file operations: 0 installs, 0 updates, 3 removals
- Removing パッケージD
- Removing パッケージB
- Removing パッケージA
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 0 installs, 0 updates, 3 removals
- Removing パッケージD
- Removing パッケージB
- Removing パッケージA
その2でRemoving
と表示されたパッケージを直接指定してcomposer u
を実行します。
これで他のパッケージが意図しないバージョンアップを防ぐことができます。
参考
Discussion