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

现在我用composer remove packageauthor/packagename卸载了主包,但所有旧的依赖项都没有删除。我原以为作曲者会清理干净,只保留作曲者要求的包。Json和它们的依赖关系。

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


事实上,这很简单。

composer update

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

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

composer update monolog/monolog

将删除独白/独白包。

尽管如此,仍然可能存在一些不能自动删除的空文件夹或文件,而必须手动删除。


正确的做法是:

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

我必须承认,旗帜在这里不是很明显,因为它将做什么。

更新

composer remove jenssegers/mongodb

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


只需运行composer install -它将使您的供应商目录反映composer中的依赖项。锁文件。

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

在运行之前,请更新编写器本身。


下面的命令可以很好地做到这一点

rm -rf vendor

composer install