我的composer.lock
文件中有一个依赖项包,需要以下依赖项。
"require": {
"evenement/evenement": "^3.0 || ^2.0 || ^1.0",
"php": ">=5.3.0",
"react/dns": "^0.4.13",
"react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5",
"react/promise": "^2.6.0 || ^1.2.1",
"react/promise-timer": "^1.4.0",
"react/stream": "^1.0 || ^0.7.1"
},
使用该管道符号,如果我composer install
,将安装什么版本,即^3.0
,^2.0
或^1.0
?
此外,我遇到了php版本兼容性问题,因此希望此软件包仅将其依赖项安装到某些版本。
说,我想从require键中删除^3.0
。我可以这样做吗?
答案 0 :(得分:0)
随时可以检查有关此问题的文档: https://getcomposer.org/doc/articles/versions.md#composer-versions-vs-vcs-versions
他们解释了这些特殊标志是如何工作的。有关管道的详细说明,请参见 https://getcomposer.org/doc/articles/versions.md#version-range
删除依赖关系有点问题,但是最简单(最不安全)的方法是从composer.json
删除依赖关系,然后删除composer.lock
文件,然后运行composer update
答案 1 :(得分:0)
Composer将安装与所有依赖项(和根项目)的所有要求匹配的依赖项。缩小允许版本的最简单方法是在根项目的composer.json
中添加更多限制性约束。例如:
"evenement/evenement": "^2.0 || ^1.0",
因为您的根软件包不允许,现在将不再安装3.0行。
无论PHP版本是否兼容,您都可能需要阅读How to constraint compatibility with PHP without explicitly constraint all the depending packages。