作曲家可以生成`composer.lock`而无需实际下载包吗?

时间:2017-06-28 14:16:04

标签: php composer-php

它确实存在从composer.lock

生成composer.json的命令

类似红宝石的bundler$ bundle lock

3 个答案:

答案 0 :(得分:10)

如果您没有composer.lock

答案是“否”,您必须使用以下方法生成锁定文件:

composer install
  

不使用composer.lock安装

     

如果您从未运行过该命令   之前还有没有composer.lock文件存在,Composer   只需解析您的composer.json文件中列出的所有依赖项   将其文件的最新版本下载到供应商目录中   在你的项目中。

来源:getcomposer.org

NB潜在问题:如果没有锁定文件,编辑器将使用最新版本的依赖项。

如果您已有composer.lock

作曲家抱怨它不同步(不记得确切的警告),然后你可以更新锁文件,但这实际上只更新文件中的哈希值:

composer update --lock

从作曲家手册:

  

- lock仅更新锁定文件哈希,以禁止显示有关锁定的警告   文件已过期。

答案 1 :(得分:5)

该功能已包含在v2.0版本中,请参见此处: https://github.com/composer/composer/pull/8669

答案 2 :(得分:1)

如果没有安装或更新this is by design,则无法创建锁定文件(归功于Manish Yadav

  

锁定文件的目的是记录安装的确切版本,以便重新安装。这意味着,如果您的版本规格为1. *并且您的同事运行安装1.2.4的composer update,然后提交composer.lock文件,那么当您编写作曲家安装时,您也将获得1.2.4,甚至如果1.3.0已经发布。这可以确保每个参与项目的人都拥有相同的版本。

来源:Composer: It's all about Lock File