从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 和合并冲突