如何从composer中删除未使用的依赖项?

问题描述 投票:168回答:4

我安装了一个包含composer的包,并且它安装了许多其他包作为依赖项。

现在我用composer remove packageauthor/packagename卸载了主程序包,但是没有删除所有旧的依赖项。我希望composer能够清理并只保留根据composer.json及其依赖项所需的包。

如何强制编写器清理并删除所有未使用的包?

php composer-php
4个回答
319
投票

正确的方法是:

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

我必须承认,这里的旗帜并不十分明显。

更新

v1.0.0-beta2开始,--update-with-dependencies是默认值,不再需要。


27
投票

事实上,这很容易。

composer update

将为您完成所有这些,但它也将更新其他包。

要删除包而不更新其他包,请在命令中指定该包,例如:

composer update monolog/monolog

将删除monolog/monolog包。

但是,可能仍有一些空文件夹或文件无法自动删除,必须手动删除。


13
投票

以下命令将完美地执行相同操作

rm -rf vendor

composer install 

7
投票

只需运行composer install - 它将使您的vendor目录反映composer.lock文件中的依赖项。

换句话说 - 它将删除composer.lock中缺少的任何供应商。

请在运行之前更新作曲家。

© www.soinside.com 2019 - 2024. All rights reserved.