更新时更新 json 文件中的 Composer 依赖项

Gen*_*ito 8 composer-php

当我运行时composer update,很多依赖项和我的 composer.json 都会更新。但是,我的composer.json没有改变,所以下次我运行时composer install,我会再次获得过时的。

例如,我有:

"require": {
        "symfony/form": "^4.1",
}
Run Code Online (Sandbox Code Playgroud)

当我运行命令时它显示:

更新 symfony/dotenv (v4.1.4 => v4.1.5):从缓存加载

但是 json 行保持不变,composer install并将安装4.1.4版本。

当我运行 composer update 时,有没有办法更新 composer.json 文件?

提前致谢!

Har*_*rry 5

composer.lock执行后你应该有一个文件composer update。您将此文件提交给版本控制,然后下一个人检查代码composer install可以获得正确的版本。

composer.json文件包含版本约束,而该composer.lock文件包含特定版本。

看看你的例子:

"require": {
        "symfony/form": "^4.1",
}
Run Code Online (Sandbox Code Playgroud)

这里symfony/form包的版本约束是^4.1. 这意味着它将接受来自 的任何版本 4 构建4.1,但不接受版本 5 或更高版本。因此它可以获得 version4.1.14.2.13更高的版本(但低于版本 5)。

https://getcomposer.org/doc/articles/versions.md#caret-version-range-

这是关于锁定文件的文档 https://getcomposer.org/doc/02-libraries.md#lock-file