作曲家。锁,锁:它是如何工作的?
-
12-12-2019 - |
题
我试图理解这部分: http://getcomposer.org/doc/02-libraries.md#lock-file
此锁定文件不会对依赖它的其他项目产生任何影响。它只对主要项目有影响"
这是否意味着如果项目P依赖于库A,而库a依赖于库B v1.3,项目P将不关心库B的版本,并可能安装B1.4代替?那有什么意义呢?
或者它是否意味着相反,正如人们对依赖关系管理器所期望的那样?
解决方案
Composer依赖项定义于 composer.json
.首次运行composer install时,或运行composer update时,一个名为 composer.lock
将被创建。
引用的文档仅引用锁定文件。如果您的项目P依赖于库A而A依赖于B v1.3。***,那么如果A包含一个锁文件,说有人运行了"作曲家更新",导致b v1.3.2被安装,那么在你的项目P中安装A可能仍然安装1.3.3,因为 composer.json
(不 .lock
!)将依赖项定义为1.3。*.
锁定文件始终包含确切的版本号,并且在与同事或发布应用程序时将您测试的版本进行通信时非常有用。对于库,依赖信息在 composer.json
这才是最重要的。
其他提示
composer.lock
记录已安装的精确版本。这样你就与你的同事在同一版本中。
composer安装
-
检查
- 如果不是,则自动生成生成
composer.lock
文件(使用composer update
) - 安装在
composer.lock
文件中记录的指定版本composer更新
- 通过
composer.json
文件 - 检查较新(最新)版本的可用性,基于所提到的版本标准(例如1.12。*)
- 安装最新可能(根据上述)版本
- 更新生成
composer.lock
文件,安装版本
所以在一个简单的检查列表中。
如果要将所有与您的版本保存在同一版本中...
- 将您的
composer.lock
提交给git(或您拥有的VC) - 要求别人得到这个版本的世代odicetagcode文件
- 始终使用
composer.lock
来获取正确的依赖性如果要将系统依赖性升级到新版本
- 检查版本规格的composer.json文件。
- 做一个
composer install
- 这将使用最新版本更改生成的
composer update
文件 - 将其提交给git(或vcs)
- 要求别人得到它和
composer.lock
以下是一个非常好的阅读 https://blog.engineyard.com/2014/composer -its-all-the-the-the-lock-file
享受
composer install
文件的力量!
- 将您的
- 通过
composer.lock
文件
锁定文件的要点是记录已安装的确切版本,以便可以重新安装。这意味着,如果你有一个版本规格为1。*和你的同事运行 composer update
它安装1.2.4,然后提交作曲家。锁定文件,当你 composer install
, ,你也会得到1.2.4,即使1.3.0已经发布。这确保了每个从事项目的人都有相同的版本。在这里阅读更多 作曲家:这都是关于锁文件的