如何作曲家安装最新的require-dev和最低的require
Posted
技术标签:
【中文标题】如何作曲家安装最新的require-dev和最低的require【英文标题】:How to composer install latest of require-dev and lowest for require 【发布时间】:2019-12-25 05:04:18 【问题描述】:我想对使用 composer 安装的包的最低支持版本运行测试,但我希望开发包为最新版本。
具体来说,我想运行它来安装最低版本的软件包以进行测试:
composer update --prefer-lowest --prefer-stable
但是,这也会降级 phpUnit 和其他开发包,这可能会因为这些开发包中的错误而导致测试失败。
我可以更明确地了解每个开发包所需的版本,但是,虽然我可能想用它使用的最低版本的包来测试我的包,但用较低版本的 PHPUnit 和其他开发包。
有没有办法将require
强制转换为--prefer-lowest
,同时最迟保留require-dev
?
【问题讨论】:
【参考方案1】:最简单的解决方案是对开发包使用正确的约束。如果您的测试需要 PHPUnit 8.3.4 才能正确运行并且可能在 8.3.3 上失败,请使用 ^8.3.4
作为 phpunit/phpunit
包的约束。
【讨论】:
【参考方案2】:--no-dev
标志跳过 install|require|update
操作的开发包。
更新以获得最新版本的应用程序 (require
) 和 开发 (require-dev
) 包:
composer update --no-autoloader
运行以下命令将您的应用程序依赖项 (require
) 降级到最低的稳定版本,但使用 --no-dev
来防止降级开发依赖项 (require-dev
)。
composer update --no-dev --prefer-lowest --prefer-stable --no-autoloader
为require
和require-dev
包转储自动加载器。
composer dump-autoload
【讨论】:
我在 composer 1.9.0 中发现--no-dev
将导致使用 update
命令删除所有 require-dev
包。以上是关于如何作曲家安装最新的require-dev和最低的require的主要内容,如果未能解决你的问题,请参考以下文章
当我为 laravel 版本 7.3.0 安装 laravel/ui 时出现错误