是否存在从composer.json生成composer.lock的命令?类似于ruby的bundler:$ bundle lock
composer.json
composer.lock
bundler
$ bundle lock
von4xj4u1#
答案是“否”,您必须使用以下命令生成锁文件:
composer install
在没有composer.lock的情况下安装如果您以前从未运行过该命令,并且没有composer.lock文件,Composer只需解析composer.json文件中列出的所有依赖项,并将其文件的最新版本下载到项目的供应商目录中。来源:getcomposer.org
**NB潜在问题:**如果没有锁文件,Composer将使用最新版本的依赖项。
如果你已经有一个composer.lock,而Composer抱怨它不同步,你会看到这个警告:警告:锁定文件未与composer.json中的最新更改保持同步。您可能会得到过时的依赖项。运行更新以更新它们。要解决这个问题,您可以更新锁定文件本身,而不更新依赖项。这将只更新锁定文件中的content-hash:
content-hash
composer update --lock
在Composer手册中:--lock Only更新锁文件哈希,以隐藏有关锁文件过期的警告。
f8rj6qna2#
不下载软件包而写锁文件composer.lock:
composer update --no-install
**--no-install:**更新composer.lock文件后不运行安装步骤。
https://getcomposer.org/doc/03-cli.md#update-u-upgrade(最初针对Composer版本2.2.5报告)
2条答案
按热度按时间von4xj4u1#
如果您没有
composer.lock
答案是“否”,您必须使用以下命令生成锁文件:
在没有composer.lock的情况下安装
如果您以前从未运行过该命令,并且没有composer.lock文件,Composer只需解析composer.json文件中列出的所有依赖项,并将其文件的最新版本下载到项目的供应商目录中。
来源:getcomposer.org
**NB潜在问题:**如果没有锁文件,Composer将使用最新版本的依赖项。
如果已经有
composer.lock
如果你已经有一个
composer.lock
,而Composer抱怨它不同步,你会看到这个警告:警告:锁定文件未与composer.json中的最新更改保持同步。您可能会得到过时的依赖项。运行更新以更新它们。
要解决这个问题,您可以更新锁定文件本身,而不更新依赖项。这将只更新锁定文件中的
content-hash
:在Composer手册中:
--lock Only更新锁文件哈希,以隐藏有关锁文件过期的警告。
f8rj6qna2#
不下载软件包而写锁文件
composer.lock
:**--no-install:**更新composer.lock文件后不运行安装步骤。
https://getcomposer.org/doc/03-cli.md#update-u-upgrade
(最初针对Composer版本2.2.5报告)