Ich habe die neueste Version (1.0.0. Stable) von Composer installiert und in meinem Yii2-Projekt Folgendes eingegeben:
php composer.phar update
Es gibt mir diesen Fehler:
[ReflectionException] Die Klasse Fxp \ Composer \ AssetPlugin \ Repository \ NpmRepository ist nicht vorhanden
[ErrorException] Die Deklaration von Fxp \ Composer \ AssetPlugin \ Repository \ AbstractAssetsRepository :: whatProvides () sollte mit Composer \ Repository \ ComposerRepository :: whatProvides kompatibel sein (Composer \ DependencyResolver \ Pool $ pool, $ name, $ bypassFilters = false)
Kann mir jemand helfen, wie ich das beheben kann?
Hier ist mein composer.json
{
"name": "yiisoft/yii2-app-advanced",
"description": "Yii 2 Advanced Project Template",
"keywords": ["yii2", "framework", "advanced", "project template"],
"homepage": "http://www.yiiframework.com/",
"type": "project",
"license": "BSD-3-Clause",
"support": {
"issues": "https://github.com/yiisoft/yii2/issues?state=open",
"forum": "http://www.yiiframework.com/forum/",
"wiki": "http://www.yiiframework.com/wiki/",
"irc": "irc://irc.freenode.net/yii",
"source": "https://github.com/yiisoft/yii2"
},
"minimum-stability": "stable",
"require": {
"php": ">=5.4.0",
"yiisoft/yii2": ">=2.0.6",
"yiisoft/yii2-bootstrap": "*",
"yiisoft/yii2-swiftmailer": "*",
"kartik-v/yii2-widget-fileinput": "@dev",
"golonka/bbcodeparser": "^2.2"
},
"require-dev": {
"yiisoft/yii2-codeception": "*",
"yiisoft/yii2-debug": "*",
"yiisoft/yii2-gii": "*",
"yiisoft/yii2-faker": "*"
},
"config": {
"process-timeout": 1800
},
"extra": {
"asset-installer-paths": {
"npm-asset-library": "vendor/npm",
"bower-asset-library": "vendor/bower"
}
}
}
php
yii2
composer-php
Marko Mikulić
quelle
quelle
composer.json
?Antworten:
Vor ungefähr neun Tagen (ungefähr Ende März 2016) hat sich die
Composer\Repository\ComposerRepository::whatProvides
API geändert. ( # 2668 ) Wenn Sie alsofxp/composer-asset-plugin
global installiert haben , sollten Sie es aktualisieren. Sie können das tun mit:quelle
~/.composer
Verzeichnisses und erneutes Installierenfxp/composer-asset-plugin
.--no-plugins
der Antwort eine Option hinzugefügt .Versuchen Sie dies, wenn das Update nicht funktioniert.
quelle
Am Ende habe ich das Problem behoben, indem ich das
fxp
Verzeichnis aus dem.composer
Verzeichnis entfernt habe. In meinem Setup macht dies den Trick:Wenn etwas benötigt wird, kann es das aktualisierte Plugin einfach erneut herunterladen.
quelle
Versuchen Sie, Ihr globales zu bearbeiten,
composer.json
indem Sie Folgendes ausführen :vi ~/.composer/composer.json
Stellen Sie dann sicher, dass Sie diese Zeile darauf haben:Die obigen Antworten haben bei mir nicht funktioniert, da die Version von mir so
fxp/composer-asset-plugin
war1.1-beta04
, als ich sie in den"1.1.8"
Befehl zum Aktualisieren geändert und ausgeführt habe:Es hat das Problem behoben. aber ohne mein globales zu bearbeiten
composer.json
, gab es mir diesen Fehler:quelle
In meinem Fall Projekt auf Yii2
Yii2, im Ordner müssen
vendor/fxp
Sie den Ordner ersetzencomposer-asset-plugin
oder löschen.quelle
Wenn keine der anderen Lösungen für Sie funktioniert hat, versuchen Sie es alternativ mit AssetPackagist .
Fügen Sie die Pakete bower-asset / bootstrap und npm-asset / jquery wie folgt zu composer.json hinzu:
Fügen Sie einen Repositorys- Block mit dem folgenden Inhalt hinzu (falls Sie noch keinen haben, fügen Sie ihn einfach an):
Führen Sie
composer install
(odercomposer update
)Fügen Sie Ihrer Anwendungskonfiguration (normalerweise als web.php bezeichnet) die folgenden Zeilen hinzu, da Asset-Packagist Assets in einem anderen Verzeichnis installiert:
Diese Anweisungen können sich im Laufe der Zeit ändern. Sie wurden von der Repo-Website kopiert, damit sie rechtzeitig verwendet werden können, falls etwas mit der Website passiert. Ich bin nicht der Autor des Repos, aber ich schätze die Anstrengungen, die unternommen wurden, sehr. Weitere Informationen zum Projekt finden Sie unter https://asset-packagist.org/site/about .
Wenn Sie mit Komponisten zu kämpfen haben, haben Sie hier einige nützliche Befehle:
composer clear-cache
- Löschen Sie komponentenbezogene Cachescomposer install -vvv
- Fügen Sie den Parameter "vvv" hinzu, um die Ausgabe des Installationsprozesses anzuzeigen (nützlich zum Debuggen).composer global show
- Nützlich, um zu überprüfen, ob Sie bereits das FXP / Composer-Asset-Plugin installiert haben. In meinem Fall war dies bereits der Fall, wurde jedoch nicht als Abhängigkeit erkannt, und die zuvor beschriebene Lösung hat für mich einwandfrei funktioniert - ich hoffe, sie funktioniert auch für Sie!quelle
Sie können eine dauerhafte Korrektur vornehmen, indem Sie sie auf globaler Ebene benötigen. Anschließend wird sie für jedes andere Projekt gelöst. Aber dann stellen Sie sicher, dass Sie allen Teammitgliedern den Tipp geben.
Am besten fügen Sie dies im Projektumfang hinzu und es löst sich für alle auf diese Weise.
So:
composer require fxp/composer-asset-plugin
quelle