Die folgende Tutorial-Kolumne von composer stellt Ihnen die Methode vor, mit der Composer das angegebene Abhängigkeitspaket aktualisiert. Ich hoffe, dass es für Freunde hilfreich ist, die es benötigen!
composer aktualisiert das angegebene Abhängigkeitspaket
compoesr
s require
/update
kann das angegebene Abhängigkeitspaket aktualisieren ( Upgrade/Downgrade). compoesr
的require
/update
都可以更新指定的依赖包(升级/降级)。
require
更为灵活些,未安装则进行安装,已安装则根据传入的版本号进行升级
或降级
。
update
则无法在命令行传入指定的版本号
,需要先手动编辑composer.json
,指定新的版本号
,然后执行更新命令。
#忽略
composer require google/protobuf --ignore-platform-reqs -vvv
Nach dem Login kopieren
require 命令
示例
// 安装包
composer require hashids/hashids:2.0.0
// 已安装 升级
composer require hashids/hashids:3.0.0
// 已安装 降级
composer require hashids/hashids:2.0.4
Nach dem Login kopieren
update 命令
update
命令无法在命令行中指定包版本号
,需要手动修改composer.json
文件
// 安装包
composer require hashids/hashids:2.0.0
Nach dem Login kopieren
错误用法
composer update hashids/hashids:3.0.0
Nach dem Login kopieren
正确用法示例
vim composer.json
"require": {
"hashids/hashids": "3.0.0"
},
:wq
#升级到3.0.0
composer update hashids/hashids
vim composer.json
"require": {
"hashids/hashids": "2.0.4"
},
:wq
#降级到2.0.4
composer update hashids/hashids
Nach dem Login kopieren
同时,如果我们编辑更新了多个包的版本号,则无法使用
composer update package1
composer update package2
composer update package3
的方式去依次的更新,因为composer
会校验配置文件的完整性json vs lock
,你指定要我更新A
,但你B
的version
在json
和lock
中不一致,你却不要我更新它,这是有问题的。
这时只能使用composer update
全局更新依赖,注意是全局包的更新操作,一些你未更改但使用了版本号范围的包也有可能被更新升级,请慎用!
install 命令
install
可以用于项目初始化后,初次安装依赖,且会优先读取composer.lock
中的版本号,以尽可能的保证协作开发中包版本的一致性。
composer.lock
中存有的包版本记录相当于执行 composer require packageName:versionNo
,不存有的相当于执行composer update packageName with versionRule in composer.json
。
当我们协同开发时,A 在本地安装了新的依赖包,或者更新了依赖包,会写入 composer.lock/composer.json
,A 上传至仓库,B 拉取至本地后,应执行一次 composer install
来同步团队的版本变更。
所以协作开发中,我们建议要同时将composer.lock/composer.json
require
ist flexibler. Wenn es nicht installiert ist, wird es installiert entsprechend der übergebenen Versionsnummer.
update
kann die angegebene Versionsnummer
nicht in der Befehlszeile übergeben. Sie müssen zuerst composer.json
manuell bearbeiten und die neue angeben Versionsnummer und führen Sie dann den Aktualisierungsbefehl aus. 大于/大于等于:>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-curl": ">=7.29.0"
}
Nach dem Login kopieren
require-Befehl🎜Beispiel🎜rrreee🎜Update-Befehl🎜🎜Der Befehl
update
kann die
Paketversionsnummer
nicht in der Befehlszeile angeben und muss
manuell ändern Composer.json
Datei 🎜rrreee🎜Falsche Verwendung🎜rrreee🎜Richtiges Verwendungsbeispiel🎜rrreee🎜Gleichzeitig können wir Composer nicht verwenden, wenn wir die Versionsnummern mehrerer Pakete bearbeiten und aktualisieren Update-Paket1
Composer-Update-Paket2
Composer-Update-Paket3
wird nacheinander aktualisiert, da
Composer code> wird kalibriert. Überprüfen Sie die Integrität der Konfigurationsdatei <code>json vs lock
. Sie haben angegeben, dass ich
A
aktualisieren soll, aber die
Version
von Ihr
B
Es gibt eine Inkonsistenz zwischen
json
und
lock
, aber Sie möchten nicht, dass ich es aktualisiere. Das ist problematisch. 🎜🎜Derzeit können Sie
composer update
nur zum globalen Aktualisieren von Abhängigkeiten verwenden. Beachten Sie, dass es sich hierbei um einen Aktualisierungsvorgang für globale Pakete handelt, die Sie nicht geändert haben, die jedoch möglicherweise auch einen Versionsnummernbereich verwenden Bitte mit Vorsicht verwenden! 🎜🎜Installationsbefehl🎜🎜
install
kann verwendet werden, um Abhängigkeiten zum ersten Mal nach der Projektinitialisierung zu installieren, und die Versionsnummer in
composer.lock
wird zuerst gelesen, um sicherzustellen, dass dies der Fall ist größtmögliche Konsistenz der Paketversionen bei der kollaborativen Entwicklung. 🎜🎜Der in
composer.lock
vorhandene Paketversionseintrag entspricht der Ausführung von
composer require packageName:versionNo
, und der nicht vorhandene entspricht der Ausführung von
Composer aktualisiert Paketnamen mit VersionRule in Composer.json
. 🎜🎜Wenn wir an der Entwicklung zusammenarbeiten, installiert A lokal ein neues Abhängigkeitspaket oder aktualisiert ein Abhängigkeitspaket, das in
composer.lock/composer.json
geschrieben wird, A lädt es in das Warehouse hoch und B zieht es. Nachdem Sie lokal angekommen sind, sollten Sie
composer install
einmal ausführen, um die Versionsänderungen des Teams zu synchronisieren. 🎜🎜Daher empfehlen wir, während der gemeinsamen Entwicklung gleichzeitig
composer.lock/composer.json
in das Remote-Warehouse hochzuladen. 🎜🎜Versionsnummernbereich🎜rrreee🎜
Das obige ist der detaillierte Inhalt vonComposer aktualisiert die angegebene Abhängigkeitspaketmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!