gpt4 book ai didi

php - Composer : remove a package, 清理依赖,不要更新其他包

转载 作者:IT王子 更新时间:2023-10-29 00:00:23 24 4
gpt4 key购买 nike

情况

假设我有一个项目,其中包含由 Composer 安装的两个包:

php composer.phar require 'squizlabs/php_codesniffer:~2.0' 'phpmd/phpmd:~2.1'

自动生成的 composer.json 文件如下所示:

{
"require": {
"squizlabs/php_codesniffer": "~2.0",
"phpmd/phpmd": "~2.1"
}
}

在自动生成的 composer.lock 文件中,有两个请求的包:

  • 2.0.0 squizlabs/php_codesniffer
  • 2.1.3 phpmd/phpmd

还有phpmd/phpmd的四个依赖:

  • 2.0.4 pdepend/pdepend
  • 2.5.9 symfony/config
  • 2.5.9 symfony/依赖注入(inject)
  • 2.5.9 symfony/文件系统

几天后,squizlabs/php_codesniffer版本2.1.0发布了,但我不想要运行 update 呢。我现在想继续使用 2.0.0 版本,也许我会在几天后运行 update


问题

我现在想从我的项目中删除 phpmd/phpmd。我想达到以下几点:

  1. composer.json
  2. 中删除 phpmd/phpmd
  3. composer.lock
  4. 中删除 phpmd/phpmd
  5. vendor 文件夹中删除 phpmd/phpmd
  6. composer.lock
  7. 中删除 phpmd/phpmd的所有依赖
  8. vendor文件夹中删除phpmd/phpmd的所有依赖
  9. 不要将 squizlabs/php_codesniffer 更新到版本 2.1.0

编辑: 我更喜欢不需要更改composer.json

squizlabs/php_codesniffer的版本约束

我尝试过的

如果我跑:

php composer.phar remove phpmd/phpmd

这达到了 1、2、3、6 点,但没有达到 4、5 点。

phpmd/phpmd的依赖项保留在composer.lockvendor文件夹中。

如果我跑:

php composer.phar remove phpmd/phpmd
php composer.phar update

这达到了 1、2、3、4、5 点,但没有达到 6 点。

squizlabs/php_codesniffer 更新到版本 2.1.0

最佳答案

composer.json 中删除条目,然后运行 ​​composer update phpmd/phpmd

至于为什么这是有效的解决方案。我不知道,但这就是从 composer.lock/vendor 中完全删除一个包并允许您安装新的/替换/冲突包所需要的。

关于php - Composer : remove a package, 清理依赖,不要更新其他包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27944795/

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