Php 仅使用Composer.lock安装Composer

Php 仅使用Composer.lock安装Composer,php,composer-php,Php,Composer Php,我刚安装了一个带有composer.lock文件的PHP应用程序 在运行composer安装时,命令行工具仍然要求使用composer.json。。。。我没有 在composer文档中,据说install命令首先查找composer.lock,然后查找composer.json 为什么composer仍然要求一个不需要安装依赖项的文件 composer安装>返回: Composer找不到Composer.json文件您仍然需要Composer.json文件来安装或更新任何依赖项。 拥有compo

我刚安装了一个带有composer.lock文件的PHP应用程序

在运行composer安装时,命令行工具仍然要求使用composer.json。。。。我没有

在composer文档中,据说install命令首先查找composer.lock,然后查找composer.json

为什么composer仍然要求一个不需要安装依赖项的文件

composer安装>返回:
Composer找不到Composer.json文件

您仍然需要Composer.json文件来安装或更新任何依赖项。 拥有composer.lock文件意味着composer不会搜索依赖项的最新提交

几周前在Twitter上,我注意到OpenCFP项目的存储库中没有composer.lock文件。“那么,”你可能会说,“只要安装composer就可以了。你会得到同样的依赖项,对吗?” 错

锁定文件的目的是记录安装的确切版本,以便重新安装。这意味着,如果您的版本规范为1.*,并且您的同事运行安装了1.2.4的composer update,然后提交composer.lock文件,则在composer安装时,即使已发布1.3.0,您也将获得1.2.4。这确保了参与项目的每个人都有相同的确切版本


来源:

您必须有一个
composer.json
才能安装依赖项,因为它是列出依赖项本身的文件。请参阅

composer.lock
列出已安装的依赖项。为了保持版本的一致性,作曲者会首先查看它

(文件规定)[:

当存在composer.lock文件时运行install可以解析并安装composer.json中列出的所有依赖项,但composer使用composer.lock中列出的确切版本来确保在项目中工作的每个人的软件包版本都是一致的


如果您丢失了
composer.json
,您可以反向工程
composer.lock
。打开它并阅读所有安装的软件包,然后创建一个需要它们的
composer.json
。不是每个软件包都会直接依赖于您的问题:您应该识别并删除那些不需要的软件包。

必须有composer.json文件才能运行composer安装,即使它首先在.lock文件中查找。如果您对答案感到满意,请将其标记为answer.thanxs,我最终使用了一个“空”composer.json文件来安装。关于这一点,文档仍然不清楚。。。