我的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。我可以这样做吗?
发布于 2018-09-26 14:38:17
请随时查看有关此问题的文档: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
发布于 2018-09-26 15:44:39
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。
https://stackoverflow.com/questions/52510527
复制相似问题