gpt4 book ai didi

laravel - 使用 composer 删除包(不更新其他包)

转载 作者:行者123 更新时间:2023-12-04 17:31:06 25 4
gpt4 key购买 nike

我目前安装了一个包“watson/sitemap”。现在,我想在不使用“composer update”的情况下删除它,因为它会更新我不想要的其他包。

任何帮助将非常感激。

最佳答案

更新: Composer 2 现在出来了,它似乎足够聪明来处理递归。您只需要删除有问题的包。
我最近需要这样做。这是一个真实的例子。这很hacky。您可以通过使用 Composer 的 PHP 类或通过解析 composer.lock 来编写脚本。文件,但这是您可以遵循的手动过程。
1. 删除不需要的包

composer remove --no-update illuminate/mail
composer update illuminate/mail
2. 寻找孤立的依赖
composer show -N | xargs -n 1 composer why | grep "There is no installed package"
输出(类似这样):
There is no installed package depending on "erusev/parsedown"
There is no installed package depending on "swiftmailer/swiftmailer"
There is no installed package depending on "tijsverkoyen/css-to-inline-styles"
3. 移除孤立的依赖
composer update erusev/parsedown swiftmailer/swiftmailer tijsverkoyen/css-to-inline-styles
4.冲洗,重复
重复步骤 2 和 3,直到找到所有孤儿。

澄清:如果您使用 --no-update标志,您不会升级包...但是(截至撰写本文时,2020 年初)它也不会删除孤立的依赖项。你不是告诉它不要“升级”。您告诉它不要更新任何已安装的 ( composer.lock ) 依赖项。巨大差距。这就是为什么您必须找到它们并从项目中手动“更新”它们。

关于laravel - 使用 composer 删除包(不更新其他包),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46722110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com