composer.lock和installed.json有什么区别?

时间:2013-10-17 18:52:32

标签: composer-php

我知道composer.lock旨在确定已安装依赖项的确切版本。但是vendor/composer/installed.json文件的用途是什么?

两者都包含JSON,两者都是自动生成的。

3 个答案:

答案 0 :(得分:17)

第一次安装或更新时会生成

composer.lock。它包含对所用确切版本的引用。它应该被提交到版本跟踪存储库中,以允许恢复这些库的精确组合。

installed.json是Composer的内部文件。从composer.json手动删除包以从供应商目录中删除文件时使用它。否则,旧的供应商包将永远存在。

答案 1 :(得分:0)

installed.json 似乎被 Composer 用作内部存储库来跟踪供应商目录中实际安装的内容。

我了解到composer.lock应该安装的,而installed.json安装的。这在上下文中是有意义的,即拥有一个没有供应商目录的 composer.lock 文件是有效的。您运行 composer install,它将安装 int composer.lock 中列出的软件包并将它们写入 installed.json

Composers 代码库将 installed.json 视为本地存储库。内容被加载到名为 InstalledRepositoryInterfacelocalRepository 类型变量中。

答案 2 :(得分:-1)

您永远不会委托供应商! 您提交composer.lock和composer.json

,如果您想“入侵”供应商 然后从另一个仓库中临时制作git补丁文件,您将复制并提交供应商,然后进行作曲家安装,然后将您的供应商从真实仓库中再次复制到临时仓​​库中,并检查您被黑的内容并生成diff文件。 git diff供应商/ *> all_vendor_hacks.patch 然后git将这些补丁文件提交到您的真实仓库中,无论谁得到真实仓库 作曲家是否安装&&补丁

将其应用于您的真实回购中。 使用补丁-p1