如何使用包的 composer.lock 文件进行作曲安装?
How to composer install using a package's composer.lock file?
如果我有:
- 一个新项目
- 没有
composer.lock
composer.json
点赞
{
"name": "fresh",
"type": "library",
"require": {
"consolidation/robo": "3.0.3"
}
}
然后运行composer install
它将安装 consolidation/robo
并更新 consolidation/robo
内部依赖项,而不是使用 consolidation/robo
内部 composer.lock
来获取库的已知工作版本。
如何让 composer install
在安装 consolidation/robo
依赖项时使用 https://github.com/consolidation/robo/blob/3.0.3/composer.lock
而不是 运行 在 [=15= 上使用 composer update
的等效项]?
目前,它正在检索损坏的内部依赖项,我必须在我的根 composer.json 中概述应该检索哪个内部依赖项。其中 https://github.com/consolidation/robo/blob/3.0.3/composer.lock
具有库的工作版本。
这就是 composer 应该 工作的方式。
依赖项的锁定文件被忽略,这是设计使然。如果您使用的软件包已破坏版本限制(例如,它说它与 foo/bar
的 ^2.1
兼容,但实际上只测试了 >= 2.1.0 && <= 2.2.2
版本,并且安装了 [=] 的 2.3 版本12=] 中断),这是因为 foo/bar
违反了 semver 承诺,或者因为您依赖的包没有经过充分测试。
你可以做的就是在你的根目录中添加 composer.json
:
{
"conflict":
"foo/bar": ">=2.3"
}
如果我有:
- 一个新项目
- 没有
composer.lock
composer.json
点赞
{
"name": "fresh",
"type": "library",
"require": {
"consolidation/robo": "3.0.3"
}
}
然后运行composer install
它将安装 consolidation/robo
并更新 consolidation/robo
内部依赖项,而不是使用 consolidation/robo
内部 composer.lock
来获取库的已知工作版本。
如何让 composer install
在安装 consolidation/robo
依赖项时使用 https://github.com/consolidation/robo/blob/3.0.3/composer.lock
而不是 运行 在 [=15= 上使用 composer update
的等效项]?
目前,它正在检索损坏的内部依赖项,我必须在我的根 composer.json 中概述应该检索哪个内部依赖项。其中 https://github.com/consolidation/robo/blob/3.0.3/composer.lock
具有库的工作版本。
这就是 composer 应该 工作的方式。
依赖项的锁定文件被忽略,这是设计使然。如果您使用的软件包已破坏版本限制(例如,它说它与 foo/bar
的 ^2.1
兼容,但实际上只测试了 >= 2.1.0 && <= 2.2.2
版本,并且安装了 [=] 的 2.3 版本12=] 中断),这是因为 foo/bar
违反了 semver 承诺,或者因为您依赖的包没有经过充分测试。
你可以做的就是在你的根目录中添加 composer.json
:
{
"conflict":
"foo/bar": ">=2.3"
}