为什么在使用";Composer Create-Project&创建项目后,依赖项不是最新的可用版本?
本教程将介绍为什么在使用";Composer Create-Project&创建项目后,依赖项不是最新的可用版本?的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。
问题描述
出于某种原因,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&创建项目后,依赖项不是最新的可用版本?的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。