为什么在使用"Composer Create-Project&创建项目后,依赖项不是最新的可用版本?

本教程将介绍为什么在使用"Composer Create-Project&创建项目后,依赖项不是最新的可用版本?的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

为什么在使用"Composer Create-Project&创建项目后,依赖项不是最新的可用版本? 教程 第1张

问题描述

出于某种原因,composer create-project命令似乎拉出了过时的依赖项版本。

运行create-project后,如果我chdir创建文件夹并运行composer update,则会下载较新的版本。

aherne@aherne-System-Product-Name:/var/www/html$CD框架/
Aherne@aherne-System-Product-Name:/var/www/html/framework$作曲家更新
使用包信息更新加载Composer存储库
依赖项(包括Required-dev)包操作:0个安装,
12次更新,0次删除
-更新Lucinda/请求验证器(v1.0.4=>v1.0.8.1):下载(100%)
-更新Lucinda/国际化(v2.0.2=>v2.0.5):下载(100%)
-更新Lucinda/view-language(v2.1.1=>v2.1.7):下载(100%)
-更新Lucinda/SQL-Data-Access(v2.0.1=>v2.0.2):下载(100%)
-更新Lucinda/Errors-MVC(v1.1.4=>v1.2.1.1):下载(100%)
-更新Lucinda/MVC(v2.0.8=>v2.1.3):下载(100%)
-更新Lucinda/Security(v2.0.5=>v2.0.9):下载(100%)
-更新Lucinda/OAuth2-客户端(v1.6.2=>v1.6.3):正在下载(100%)
-更新Lucinda/NoSQL-Data-Access(v2.0.3=>v2.0.4):下载(100%)
-更新Lucinda/Logging(v2.0.3=>v2.0.5):下载(100%)
-更新Lucinda/http-cering(v2.0.1=>v2.0.3.2):正在下载(100%)
-正在更新Lucinda/framework-Engine(v1.2.5=>v1.3.6):正在下载(100%)写入锁文件生成自动加载文件

为什么composer create-project不首先下载最新的依赖项版本?

推荐答案

因为执行create-project基本上相当于克隆存储库,然后执行composer install

install下载composer.lock中声明的依赖项,其中包括特定的版本声明。运行install应该是安全的,并且只安装存储库中显式存储的声明的依赖项版本。

update则读取composer.json上声明的版本约束,下载满足这些约束的每个包的最新可用版本,然后更新composer.lock

这种行为对于全新的安装是不安全的,因为不仅您的直接依赖项会更新,而且可以更新的依赖项的任何依赖项也会更新,并且可能会意外地引入兼容性问题。项目中的锁定文件表示可用于安全安装按预期工作的项目的状态。

引用:

    create-project

    install

    update

好了关于为什么在使用"Composer Create-Project&创建项目后,依赖项不是最新的可用版本?的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。