我安装了一个包含composer的包,并且它安装了许多其他包作为依赖项。
现在我用composer remove packageauthor/packagename
卸载了主程序包,但是没有删除所有旧的依赖项。我希望composer能够清理并只保留根据composer.json
及其依赖项所需的包。
如何强制编写器清理并删除所有未使用的包?
正确的方法是:
composer remove jenssegers/mongodb --update-with-dependencies
我必须承认,这里的旗帜并不十分明显。
从v1.0.0-beta2开始,--update-with-dependencies
是默认值,不再需要。
事实上,这很容易。
composer update
将为您完成所有这些,但它也将更新其他包。
要删除包而不更新其他包,请在命令中指定该包,例如:
composer update monolog/monolog
将删除monolog/monolog
包。
但是,可能仍有一些空文件夹或文件无法自动删除,必须手动删除。
以下命令将完美地执行相同操作
rm -rf vendor
composer install
只需运行composer install
- 它将使您的vendor
目录反映composer.lock
文件中的依赖项。
换句话说 - 它将删除composer.lock
中缺少的任何供应商。
请在运行之前更新作曲家。