如何从作曲家删除未使用的依赖?

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

现在我用composer remove packageauthor/packagename卸载了主包,但所有旧的依赖项都没有删除。我期望编写器清理并只保留根据composer.json及其依赖项所需的包。

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

230403 次浏览

事实上,这很简单。

composer update

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

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

composer update monolog/monolog

将删除monolog/monolog包。

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

正确的做法是:

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

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

更新

composer remove jenssegers/mongodb

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

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

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

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

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

rm -rf vendor


composer install