【发布时间】:2013-10-26 10:07:06
【问题描述】:
我了解composer.lock 旨在确定已安装依赖项的确切版本。但是vendor/composer/installed.json文件有什么作用呢?
两者都包含 JSON,并且都是自动生成的。
【问题讨论】:
-
很好的答案在这里stackoverflow.com/a/39502171/3648564。
标签: composer-php
我了解composer.lock 旨在确定已安装依赖项的确切版本。但是vendor/composer/installed.json文件有什么作用呢?
两者都包含 JSON,并且都是自动生成的。
【问题讨论】:
标签: composer-php
composer.lock在首次安装或更新时生成。它包含对所使用的确切版本的引用。应该将其提交到版本跟踪存储库中,以允许恢复这种精确的库组合。
installed.json 是 Composer 的内部文件。当您从composer.json 手动删除一个包以从供应商目录中删除文件时使用它。否则,旧的供应商包将永远存在。
【讨论】:
vendor/ 目录受版本控制,原因我不会在这里讨论。在这种情况下,将其与其他所有内容一起提交似乎是谨慎的。
vendor 中的任何内容,只在安装/更新后提交它。
composer.json 中删除包时,Composer 不能像引用 composer.lock 而不是 installed.json 一样容易吗?
installed.json 似乎被 Composer 用作内部存储库,以跟踪供应商目录中实际安装的内容。
我读到composer.lock 是应该 安装的,installed.json 是应该 安装的。这在上下文中具有一定的意义,即拥有没有供应商目录的 composer.lock 文件是有效的。你运行composer install,它将安装列出的包 int composer.lock 并将它们写入installed.json。
Composers 代码库将installed.json 视为本地存储库。内容被加载到名为localRepository 的InstalledRepositoryInterface 类型变量中。
【讨论】: