从composer.lock(不是composer.json)重新安装供应商

Posted

技术标签:

【中文标题】从composer.lock(不是composer.json)重新安装供应商【英文标题】:Re-install vendors from composer.lock (not composer.json) 【发布时间】:2014-12-08 05:42:34 【问题描述】:

在我的项目中,我有一些 Composer 供应商 库已经手动编辑;我的目的是在我的开发机器上将它们恢复到原始状态

不幸的是,我触发了composer update,所以我不再有正确的 composer.lock(它已被更新)。我从我们的生产系统(与旧开发 composer.lock 具有相同的库版本)获得了 composer.lock

用旧的替换新的composer.lock后,我应该执行什么以确保与以前的环境相同?

composer install 应该足以重新安装旧版本的依赖项吗? (删除旧的 Composer vendor/ 目录后)

我想在不获取任何更新版本的情况下重新安装。 而且,在将来我将避免执行 composer update 的情况下,在手动编辑供应商库后,我应该触发什么来恢复供应商库?

【问题讨论】:

Yes, composer install will use the composer.lock file 哦,谢谢。我找不到已经讨论过的地方。您认为它是否也适用于从另一台机器(不同的机器但具有相同的项目并处于所需状态)恢复的 composer.lock 没错。命令install 查找composer.lock 文件并将下载那里指定的版本。恢复版本的唯一风险是它可能是旧版本,因此安装了旧的依赖项。看看这里:composer.lock - The Lock File 发送 composer.lock 到你的 git/svn。每当您升级或安装新的依赖项时,composer.lock 都会更新,您必须将其发送到您的 git/svn。 【参考方案1】:

正如 Max 的回答:

"Yes, composer install will use the composer.lock file"

我刚刚从生产系统中恢复了composer.lock,然后执行了composer install

正如 Édipo Costa Rebouças 所述,如果我们每次更新时都将 composer.lock 提交到我们的存储库,那么我们将始终拥有对正确版本依赖项的正确引用。 p>

【讨论】:

以上是关于从composer.lock(不是composer.json)重新安装供应商的主要内容,如果未能解决你的问题,请参考以下文章

错误:无法解析“composer.lock”;它必须是 Composer 生成的有效锁文件

GIT 中的 Composer 和 composer.lock 和合并冲突

composer update的错误使用以及如何更新composer.lock文件

php composer

composer基础知识科普

如何阅读或反向工程 composer.lock 文件?