composer 不会从 composer.lock 中删除条目

ami*_*ree 6 composer-php

我使用以下命令使用 Composer 删除了一个包。

composer remove sjparkinson/static-review
Run Code Online (Sandbox Code Playgroud)

上面的命令从composer.json文件中删除条目,但 composer.lock 文件仍然包含require部分中提到的库的条目。

什么是正确的更新方式composer.lock?我应该手动更新吗?

rob*_*006 9

Composer 不会删除这个包,因为另一个依赖需要它。所以即使你不直接要求它,你的项目仍然需要它,所以你不能删除它。您可以使用composer why some-vendor/some-package命令来检查保持安装此软件包的原因:

composer why sjparkinson/static-review
Run Code Online (Sandbox Code Playgroud)

magento/product-community-edition 2.2.4 需要 sjparkinson/static-review (~4.1)

如果你真的想删除这个包,你也需要删除magento/product-community-edition(以及依赖于这个包的每个依赖项)。


顺便说一句:composer.lock手动编辑真的很糟糕,你永远不应该这样做。

  • 如果我得到这样的结果:`没有安装依赖于“guzzlehttp/psr7”的软件包`怎么办?但它仍然没有从 `composer.lock` 中删除 (5认同)