【问题标题】:Composer install with only composer.lock仅使用 composer.lock 安装 Composer
【发布时间】:2017-06-07 20:26:06
【问题描述】:

我新安装了一个 PHP 应用程序,其中包含 composer.lock 文件。

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

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

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

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

【问题讨论】:

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

标签: php composer-php


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

    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。不是每个单独的包都会直接依赖于您的问题:您应该识别并删除那些不是的。

    【讨论】:

      猜你喜欢
      • 2020-07-30
      • 2015-09-26
      • 2013-07-16
      • 2023-03-15
      • 2021-06-05
      • 2012-07-07
      • 2014-10-09
      • 2013-09-12
      相关资源
      最近更新 更多