Как мы можем изменить требования к версии для зависимости от файла composer.lock? - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть пакет зависимостей, который требует следующих зависимостей в моем файле 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, и поэтому я хочу, чтобы этот пакет устанавливал свои зависимости только с определенными версиями.

Скажем, я хочу удалить ^3.0 из требуемого ключа.Могу я это сделать?

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Composer установит зависимости, которые соответствуют всем требованиям всех зависимостей (и корневого проекта).Самый простой способ сузить допустимые версии - это добавить больше ограничительных ограничений в composer.json вашего корневого проекта.Например:

"evenement/evenement": "^2.0 || ^1.0",

Поскольку теперь строка 3.0 не будет установлена, поскольку она не разрешена вашим корневым пакетом.

Независимо от совместимости с версией PHP - вы можете захотеть прочитать Как ограничить совместимость с PHP без явного ограничения всех зависимых пакетов .

0 голосов
/ 26 сентября 2018

Не стесняйтесь проверять документы по этому вопросу: 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 и запуск * 1009.*

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...