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

cia*_*ben 15 php composer-php

它确实存在一个命令来生成composer.lock一个composer.json

类似红宝石的东西bundler:$ bundle lock

Dei*_*sio 31

composer.lock无需下载包即可写入锁定文件:

composer update --no-install
Run Code Online (Sandbox Code Playgroud)

--no-install:更新composer.lock文件后不运行安装步骤。

https://getcomposer.org/doc/03-cli.md#update-u-upgrade

(最初针对 Composer 版本 2.2.5 报告)


Dun*_*moo 15

如果你没有composer.lock

答案是"不",你必须使用以下方法生成锁定文件:

composer install
Run Code Online (Sandbox Code Playgroud)

没有composer.lock安装

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

资料来源:getcomposer.org

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

如果你已经有一个composer.lock

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

composer update --lock
Run Code Online (Sandbox Code Playgroud)

从作曲家手册:

--lock仅更新锁定文件哈希以禁止关于锁定文件过期的警告.

  • 只需注意“composer update --lock”还将更新锁定文件的其他部分以匹配“composer.json”而不仅仅是哈希值。 (3认同)

dea*_*yte 8

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