我想对使用composer安装的软件包的最低支持版本进行测试,但是理想情况下,我希望开发版本为最新版本。
具体地说,我想运行此命令以安装最低版本的软件包,以进行测试:
composer update --prefer-lowest --prefer-stable
但是,这也会降级PHPUnit和其他开发包,这可能会由于这些开发包中的错误而导致测试失败。
我可以更明确地了解每个开发包所需的版本,尽管我可能想使用其使用的最低版本的包来测试我的包,但是使用较低版本的PHPUnit和其他开发包。
是否有一种方法可以强制require
保持为--prefer-lowest
,同时保持require-dev
最晚?
答案 0 :(得分:2)
最简单的解决方案是对开发包使用正确的约束。如果您的测试要求PHPUnit 8.3.4正确运行并且可能在8.3.3上失败,请使用^8.3.4
作为phpunit/phpunit
软件包的约束。
答案 1 :(得分:1)
--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