我正在尝试了解这一部分: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?那有什么意义呢?
还是像从依赖管理器中所期望的那样相反?
Answers:
Composer依赖项在中定义composer.json
。首次运行composer时,或者运行composer更新时,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
就很重要。
composer.lock
记录已安装的确切版本。这样您就可以与同事使用相同的版本。
作曲家安装
composer.lock
文件composer.lock
文件(使用composer update
)composer.lock
文件中记录的指定版本作曲家更新
composer.json
文件composer.lock
使用已安装的版本更新文件因此,在一个简单的清单中。
如果您想让所有同事使用与您相同的版本...
composer.lock
的GIT(或您拥有的vc)composer.lock
文件的版本composer install
获取正确的依赖关系如果要将系统依赖项升级到新版本
composer update
composer.lock
最新版本的文件composer install
以下将是一个很好的阅读
https://blog.engineyard.com/2014/composer-its-all-about-the-lock-file
享受composer.lock
文件的力量!
锁定文件的目的是记录已安装的确切版本,以便可以重新安装它们。这意味着,如果您的版本规格为1. *,并且您的同事运行时composer update
安装了1.2.4,然后提交了composer.lock文件,那么当您使用时composer install
,即使1.3.0,您也会得到1.2.4。已发布。这可以确保每个人都参与这个项目具有完全相同的version.Read更多在这里作曲:这是所有关于锁定文件