我知道composer.lock
旨在确定已安装依赖项的确切版本。但是vendor/composer/installed.json
文件的用途是什么?
两者都包含JSON,两者都是自动生成的。
答案 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
视为本地存储库。内容被加载到名为 InstalledRepositoryInterface
的 localRepository
类型变量中。
答案 2 :(得分:-1)
您永远不会委托供应商! 您提交composer.lock和composer.json
,如果您想“入侵”供应商 然后从另一个仓库中临时制作git补丁文件,您将复制并提交供应商,然后进行作曲家安装,然后将您的供应商从真实仓库中再次复制到临时仓库中,并检查您被黑的内容并生成diff文件。 git diff供应商/ *> all_vendor_hacks.patch 然后git将这些补丁文件提交到您的真实仓库中,无论谁得到真实仓库 作曲家是否安装&&补丁
将其应用于您的真实回购中。
使用补丁-p1