我试图理解这部分: 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.lock文件(使用composer update
  • 安装在composer.lock文件中记录的指定版本

    composer更新

    • 通过composer.json文件
    • 检查较新(最新)版本的可用性,基于所提到的版本标准(例如1.12。*)
    • 安装最新可能(根据上述)版本
    • 更新生成composer.lock文件,安装版本

      所以在一个简单的检查列表中。

      如果要将所有与您的版本保存在同一版本中...

      • 将您的composer.lock提交给git(或您拥有的VC)
      • 要求别人得到这个版本的世代odicetagcode文件
      • 始终使用 composer.lock来获取正确的依赖性

        如果要将系统依赖性升级到新版本

锁定文件的要点是记录已安装的确切版本,以便可以重新安装。这意味着,如果你有一个版本规格为1。*和你的同事运行 composer update 它安装1.2.4,然后提交作曲家。锁定文件,当你 composer install, ,你也会得到1.2.4,即使1.3.0已经发布。这确保了每个从事项目的人都有相同的版本。在这里阅读更多 作曲家:这都是关于锁文件的

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top