从composer卸载一个包而不更新其他所有内容

3

我有一个使用Composer的项目。我想删除一个包(在我的情况下是Aspect Mock)。

我从composer.json中删除了依赖项,并手动删除了所有供应商包。然后我运行php composer.phar install。它会显示:

Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them.

我不想看到这个警告,所以我运行了php composer.phar update,它更新了composer.lock中所有的包(我们在SCM中有此文件)。
但是我也不想这样做(我只想删除一个包),所以我手动删除了composer.lock中可删除包的所有引用。然而,Composer install仍然会出现警告。
如何删除由Composer安装的一个包,而不更新其他任何内容,并且不会在我的工作流程中引入警告?
2个回答

4

仅更新锁文件:composer update --lock

一条命令删除软件包、删除其文件、更新锁定文件,无需处理裸JSON数据:composer remove vendor/packagecomposer remove --dev vendor/package - 这与require相反。


1
非常好用。非常感谢。 - undefined
这已经过时了。正确的方式是 composer update --lock。请参考这个问题 - undefined

4
您需要的命令是composer remove vendor/package。它可以将包从composer.json中删除,并从vendor文件夹中删除该包。您可以在https://getcomposer.org/doc/03-cli.md#remove了解有关其选项的详细信息。

1
我知道我刚回答了一个较旧的问题,但我和提问者遇到了同样的问题,composer update nothing 对我没有起作用。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接