Composer php 什么';composer.lock和installed.json之间的区别是什么?
我知道Composer php 什么';composer.lock和installed.json之间的区别是什么?,composer-php,Composer Php,我知道composer.lock是用来确定已安装依赖项的确切版本的。但是vendor/composer/installed.json文件有什么用途呢 两者都包含JSON,并且都是自动生成的。composer.lock是在首次安装或更新时生成的。它包含对所使用的确切版本的引用。应该将其提交到版本跟踪存储库中,以允许还原库的精确组合 installed.json是Composer的内部文件。当您从composer.json手动删除包以从供应商目录中删除文件时,会使用此选项。否则,旧的供应商软件包将永
composer.lock
是用来确定已安装依赖项的确切版本的。但是vendor/composer/installed.json
文件有什么用途呢
两者都包含JSON,并且都是自动生成的。
composer.lock
是在首次安装或更新时生成的。它包含对所使用的确切版本的引用。应该将其提交到版本跟踪存储库中,以允许还原库的精确组合
installed.json
是Composer的内部文件。当您从composer.json
手动删除包以从供应商目录中删除文件时,会使用此选项。否则,旧的供应商软件包将永远存在。已安装。Composer似乎将json
用作内部存储库,以跟踪供应商目录中实际安装的内容
我已经读过composer.lock
是应该安装的,也是安装的。json
是安装的。这在没有供应商目录的composer.lock文件有效的情况下有一定的意义。您运行composer install
,它将安装列出的包intcomposer.lock
,并将它们写入installed.json
Composer codebase将
installed.json
视为本地存储库。内容被加载到类型为InstalledRepositoryInterface
的变量中,该变量名为localRepository
,我问这个问题的原因正是因为我正在处理一个项目,其中vendor/
目录处于版本控制之下,我在此不赘述。在这种情况下,将其与其他内容一起提交似乎是明智的。一个非常有效的原因是部署过程目前不允许独立获取依赖项。但即使在这种情况下,我也不会去碰供应商内部的任何东西,仅在安装/更新后按原样提交。是否应推送installed.json?当installed.json被删除时,是否会出现任何问题?当手动从Composer.json
中删除包时,Composer不能简单地引用Composer.lock
而不是installed.json
?