当前位置: 首页 > 后端技术 > PHP

Composer更新指定的依赖包

时间:2023-03-29 15:51:44 PHP

compoesr的require/update可以更新指定的依赖包(升级/降级)。要求更灵活。未安装则安装,安装则根据传入的版本号进行升级或降级,update不能在命令行传入指定的版本号。您需要手动编辑composer.json,指定新的版本号,然后执行更新命令。#ignorecomposerrequiregoogle/protobuf--ignore-platform-reqs-vvvrequire命令示例//安装包composerrequirehashids/hashids:2.0.0//安装升级composerrequirehashids/hashids:3.0.0//安装降级composerrequirehashids/hashids:2.0.4update命令update命令不能在命令行指定包版本号,需要手动修改composer.json文件//安装包composerrequirehashids/hashids:2.0.0错误用法composerupdatehashids/hashids:3.0.0正确使用示例vimcomposer.json"require":{"hashids/hashids":"3.0.0"},:wq#upgradeto3.0.0composerupdatehashids/hashidsvimcomposer.json"require":{"hashids/hashids":"2.0.4"},:wq#Downgradeto2.0.4composerupdatehashids/hashids同时编辑更新多个包的版本号,不能使用composerupdatepackage1composerupdatepackage2composerupdatepackage3依次更新,因为composer会verify配置文件jsonvslock的完整性,你指定我要更新A,但是你B的版本json和lock不一致,你却不想让我更新,这是有问题的。这个时候只能使用composerupdate来全局更新依赖。请注意,这是针对全局包的更新操作。一些您没有更改但使用版本号范围的软件包也可能会更新和升级。请谨慎使用!install命令install可用于项目初始化后的第一次安装依赖,会先读取composer.lock中的版本号,尽可能保证协同开发中包版本的一致性。composer.lock中保存的包版本记录相当于执行composerrequirepackageName:versionNo,不存在的相当于在composer.json中执行composerupdatepackageNamewithversionRule。我们一起开发的时候,如果A在本地安装了一个新的依赖包,或者更新了一个依赖包,就会写入composer.lock/composer.json,A上传到仓库,B拉到本地后,一个composerinstall应该执行来同步团队的版本变更。所以,在协同开发中,我们建议同时上传composer.lock/composer.json到远程仓库。版本号范围大于/大于等于:>1.2.3>=1.2.3小于/小于等于:<1.2.3<=1.2.3具体版本号:1.2.3~1.2.3:1.2.3<=version<1.3^1.2.3:1.2.3<=version<2.0{"php":">=7.0","ext-swoole":">=4.0.0","lib-卷曲":">=7.29.0"}