当我运行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文件?
谢谢!
答案 0 :(得分:2)
执行composer.lock
后,您应该拥有一个composer update
文件。您将此文件提交到版本控制,然后下一个签出代码的人可以composer install
来获取正确的版本。
composer.json
文件包含版本约束,而composer.lock
文件包含特定版本。
看看您的示例:
"require": {
"symfony/form": "^4.1",
}
此处,symfony/form
软件包的版本约束为^4.1
。这意味着它将接受来自4.1
的任何版本4,但不接受版本5或更高版本。因此它可以获得版本4.1.1
或4.2.13
或更高版本(但低于版本5)。
https://getcomposer.org/doc/articles/versions.md#caret-version-range-
这是有关锁定文件的文档 https://getcomposer.org/doc/02-libraries.md#lock-file