composer 可以在不实际下载软件包的情况下生成 `composer.lock` 吗?

问题描述 投票:0回答:3

确实存在从

composer.lock
生成
composer.json
的命令吗?

类似红宝石的东西

bundler
$ bundle lock

php composer-php
3个回答
117
投票

如果您没有
composer.lock

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

composer install

不使用composer.lock安装

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

来源:getcomposer.org

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

如果您已经有
composer.lock

如果您已经有

composer.lock
并且 Composer 抱怨它不同步,您将看到此警告:

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

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

content-hash

composer update --lock

来自 Composer 手册:

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


24
投票

写入锁定文件

composer.lock
无需下载包:

composer update --no-install

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

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

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


-1
投票
 composer install --ignore-platform-req=ext-fileinfo

解决了我的问题。 100%有效。

© www.soinside.com 2019 - 2024. All rights reserved.