我试图理解这部分: http: //getcomposer.org/doc/02-libraries.md#lock-file
这个锁文件不会对其他依赖它的项目产生任何影响。只对主项目有影响”
这是否意味着如果项目 P 依赖于库 A,而库 A 依赖于库 B v1.3,则项目 P 不会关心库 B 的版本,而可能会安装 B 1.4?那有什么意义呢?
或者它是否意味着相反的意思,正如人们对依赖管理器所期望的那样?
我试图理解这部分: http: //getcomposer.org/doc/02-libraries.md#lock-file
这个锁文件不会对其他依赖它的项目产生任何影响。只对主项目有影响”
这是否意味着如果项目 P 依赖于库 A,而库 A 依赖于库 B v1.3,则项目 P 不会关心库 B 的版本,而可能会安装 B 1.4?那有什么意义呢?
或者它是否意味着相反的意思,正如人们对依赖管理器所期望的那样?
composer.lock
记录安装的确切版本。这样您就可以与您的同事处于相同的版本中。
作曲家安装
composer.lock
文件composer.lock
文件(使用composer update
)composer.lock
安装文件中记录的指定版本作曲家更新
composer.json
文件composer.lock
使用已安装的版本更新文件所以在一个简单的清单中。
如果您想让所有同事都使用与您相同的版本...
composer.lock
给 GIT(或您拥有的 vcs)composer.lock
文件composer install
获取正确的依赖项如果要将系统依赖升级到新版本
composer update
composer.lock
使用最新版本更改文件composer install
以下将是一个很好的阅读
https://blog.engineyard.com/2014/composer-its-all-about-the-lock-file
享受composer.lock
文件的力量!
Composer 依赖项在composer.json
. 第一次运行 composer install 或运行 composer update 时,composer.lock
将创建一个名为的锁定文件。
引用的文档仅指锁定文件。如果你的项目 P 依赖于库 A 而 A 依赖于 B v1.3.***,那么如果 A 包含一个锁定文件,说有人运行“composer update”导致安装了 B v1.3.2,那么在你的项目中安装 A P 可能仍会安装 1.3.3,因为composer.json
(不是.lock
!)将依赖项定义为 1.3.*。
锁定文件始终包含准确的版本号,对于将您测试的版本传达给同事或发布应用程序时很有用。对于库来说,依赖信息composer.json
是最重要的。
锁定文件的重点是记录已安装的确切版本,以便重新安装它们。这意味着,如果您的版本规范为 1.*,并且您的同事运行composer update
安装 1.2.4,然后提交 composer.lock 文件,那么当您使用时composer install
,您也将获得 1.2.4,即使是 1.3.0已被释放。这可确保从事该项目的每个人都有相同的确切版本。在这里阅读更多作曲家:这都是关于锁定文件的