我试图理解这部分:http://getcomposer.org/doc/02-libraries.md#lock-file
此锁定文件不会对依赖它的其他项目产生任何影响。它只对主项目有影响”
这是否意味着,如果项目 P 依赖于库 A,而库 A 依赖于库 B v1.3,则项目 P 不会关心库 B 的版本,而可能会安装 B 1.4?那还有什么意义呢?
或者这是否意味着相反,正如人们对依赖管理器的期望?
composer.lock
记录安装的确切版本。这样您就可以与同事处于相同的版本。
作曲家安装
composer.lock
文件composer.lock
文件(使用composer update
)composer.lock
文件中记录的指定版本作曲家更新
composer.json
文件composer.lock
文件所以在一个简单的检查清单中。
如果您想让所有同事都使用与您相同的版本...
composer.lock
提交到 GIT(或您拥有的 vcs)composer.lock
文件 composer install
来获取正确的依赖项如果您想升级系统依赖到新版本
composer update
composer.lock
文件更改为最新版本composer install
以下将是一本非常好的读物
https://blog.engineyard.com/2014/composer-its-all-about-the-lock-file
享受
composer.lock
文件的力量!
Composer 依赖项在
composer.json
中定义。当第一次运行composer install 或运行composer update 时,将创建一个名为 composer.lock
的锁定文件。 1
引用的文档仅指锁定文件。如果您的项目 P 依赖于库 A 并且 A 依赖于 B v1.3.**,那么如果 A 包含一个锁定文件,表明有人运行了“composer update”导致安装了 B v1.3.2,则在您的项目中安装 A P 可能仍会安装 1.3.3,因为
composer.json
(不是 .lock
!)将依赖关系定义为 1.3..
锁定文件始终包含准确的版本号,并且对于向同事传达您测试的版本或在发布应用程序时非常有用。对于库来说,
composer.json
中的依赖信息才是最重要的。
1
composer.lock
默认情况下创建,因为 lock
配置选项[ref] 是 true
。将选项设置为 false
Composer 将不会创建或读取 composer.lock
文件。
锁定文件的目的是记录已安装的确切版本,以便可以重新安装它们。这意味着,如果您的版本规范为 1.* 并且您的同事运行安装 1.2.4 的
composer update
,然后提交composer.lock 文件,那么当您 composer install
时,您也将获得 1.2.4 ,即使 1.3.0 已经发布。这可以确保参与该项目的每个人都拥有相同的确切版本。在此处阅读更多内容Composer:这都是关于锁定文件的
奔跑
compose init
它会解决你的问题