Heim > Entwicklungswerkzeuge > composer > Composer aktualisiert die angegebene Abhängigkeitspaketmethode

Composer aktualisiert die angegebene Abhängigkeitspaketmethode

藏色散人
Freigeben: 2021-03-09 13:56:44
nach vorne
3767 Leute haben es durchsucht

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 die angegebene Abhängigkeitspaketmethode

composer aktualisiert das angegebene Abhängigkeitspaket

compoesrs require/update kann das angegebene Abhängigkeitspaket aktualisieren ( Upgrade/Downgrade). compoesrrequire/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,但你Bversionjsonlock中不一致,你却不要我更新它,这是有问题的。

这时只能使用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!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage