繁体   English   中英

Composer安装只有composer.lock

[英]Composer install with only composer.lock

我刚刚安装了一个用composer.lock文件给出的PHP应用程序。

运行composer install时,命令行工具仍然要求composer.json ....我没有。

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

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

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

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

几个星期前在Twitter上,我注意到OpenCFP项目在其存储库中没有composer.lock文件。 “那么什么,”你可能会说,“只是作曲家安装而你走了。 你会得到相同的依赖,对吗?“错了。

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

来源: 作曲家:这都是关于锁文件的

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

composer.lock列出已安装的依赖项。 作曲家首先看它,以保持版本的一致性。

(文档说明)[ https://getcomposer.org/doc/01-basic-usage.md#installing-with-composer-lock]

当存在composer.lock文件时运行安装会解析并安装您在composer.json中列出的所有依赖项,但Composer使用composer.lock中列出的确切版本来确保程序包版本对于处理项目的每个人都是一致的。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM