web-dev-qa-db-ja.com

未使用の依存関係を作曲家から削除する方法

私はcomposerでパッケージをインストールしました、そしてそれは依存関係として他の多くのパッケージをインストールしました。

今私はcomposer remove packageauthor/packagenameでメインパッケージをアンインストールしました、しかしすべての古い依存関係は削除されませんでした。私は作曲家がcomposer.jsonとそれらの依存関係に従って必要とされるパッケージだけを片付けて保管することを期待しました。

未使用のパッケージをすべてクリーンアップして削除するように強制するにはどうすればよいですか。

171
Lorenz Meyer

これを行う正しい方法は次のとおりです。

composer remove jenssegers/mongodb --update-with-dependencies

ここでのフラグはそれが何をするのかについては明らかではありません。

更新

composer remove jenssegers/mongodb

v1.0.0-beta2以降--update-with-dependenciesがデフォルトであり、もはや必要ではありません。

321
Denis Pshenov

実際、それはとても簡単です。

composer update

これはすべてあなたのために行いますが、それは他のパッケージも更新します。

他のパッケージを更新せずにパッケージを削除するには、例えばそのパッケージをコマンドで指定します。

composer update monolog/monolog

monolog/monologパッケージを削除します。

それにもかかわらず、自動的に削除することができず、手動で削除しなければならないいくつかの空のフォルダまたはファイルが残る場合があります。

27
Lorenz Meyer

以下のコマンドは同じことを完璧にします

rm -rf vendor

composer install 
14
Max Wen

composer installを実行するだけです - それはあなたのvendorディレクトリがcomposer.lockファイルの依存関係を反映するようにします。

言い換えれば - それはcomposer.lockに欠けているどんなベンダーでも削除します。

これを実行する前に作曲家自身を更新してください。

8
Valentas