首页 > 解决方案 > 在更新时更新 json 文件中的作曲家依赖项

问题描述

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

例如,我有:

"require": {
        "symfony/form": "^4.1",
}

当我运行命令时它显示:

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

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

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

提前致谢!

标签: composer-php

解决方案


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

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

看看你的例子:

"require": {
        "symfony/form": "^4.1",
}

这里包的版本约束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


推荐阅读