我们如何更改依赖composer.lock文件的版本要求?

时间:2018-09-26 05:29:52

标签: php composer-php

我的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。我可以这样做吗?

2 个答案:

答案 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