【问题标题】:Can composer generate the `composer.lock` without actually download the packages?作曲家可以在不实际下载包的情况下生成`composer.lock`吗?
【发布时间】:2017-12-01 23:18:51
【问题描述】:

确实存在从composer.json 生成composer.lock 的命令?

类似 ruby​​ 的东西 bundler : $ bundle lock

【问题讨论】:

  • 我不知道。似乎是一个奇怪的要求。
  • 我认为composer update --lock 可以做到这一点。 “--lock:仅更新锁定文件哈希以抑制有关锁定文件已过期的警告。”或者this
  • @Sevvlor 我一开始没有安装 deps,运行 update --lock 它会安装它们..
  • 我实际上认为如果不安装或更新这是不可能的。 Which is probably due to it's purpose
  • 我实际上认为这将非常有用。在我的场景中,我需要更新 6 个应用程序中的依赖项版本。因为此功能不可用,我必须检查每个应用程序并安装所有依赖项(70,000 个文件)才能更新锁定文件。跳过复制 70,000 个文件会很棒。

标签: php composer-php


【解决方案1】:

如果您没有composer.lock

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

composer install

在没有 composer.lock 的情况下安装

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

来源:getcomposer.org

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

如果您已经有composer.lock

如果您已经有 composer.lock 并且 Composer 抱怨它不同步,您会看到以下警告:

警告:锁定文件不是最新的 composer.json 中的最新更改。您可能会得到过时的依赖项。运行 update 来更新它们。

要解决此问题,您可以更新锁定文件本身,而无需更新依赖项。这只会更新锁定文件中的content-hash

composer update --lock

来自作曲家手册:

--lock 仅更新锁定文件哈希以抑制有关锁定的警告 文件已过期。


作曲家 v2 更改

在 v1 中运行 composer update 会更新锁定文件并安装,没有选项只能写入锁定文件。 Composer v2 已将两者分开,因此composer update 将更新锁定文件但不会下载任何内容。

注意:v2 中的composer update 当然会创建一个更新的 composer.lock,所以如果您未能从之前保存您的 composer.lock 文件,仍然无法重新创建该状态,您仍然会遇到问题。

Composer v2 Upgrade notes

【讨论】:

  • 那么我能否以某种方式创建一个虚拟的composer.lock 文件,然后创建一个composer update --lock 来获得与composer install 相同的锁定文件?
  • 据我在the documentation 中看到的,生成composer.lock 的唯一方法是运行composer install。如果--dry-run 或类似的标志在锁定文件丢失的情况下写入锁定文件,那就太好了。
  • 直接在 composer repo 中为它创建了一个问题 - github.com/composer/composer/issues/8551
  • @mvorisek 如果我能给你点赞或赏金,我愿意,你的建议将包含在 Composer 2.0 中!
  • 只是注意到composer update --lock 也会更新锁定文件的其他部分以匹配composer.json 而不仅仅是哈希。
【解决方案2】:

写锁文件composer.lock 不下载包:

composer update --no-install

作曲家版本 2.2.5

【讨论】:

    猜你喜欢
    • 2019-06-07
    • 2020-10-07
    • 2016-06-07
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    相关资源
    最近更新 更多