Intereting Posts
strtotime () & date () странное поведение при преобразовании даты в тот же формат, что и раньше В чем разница между PEAR и Composer? Написание запроса в php, который получает информацию из двух разных таблиц remove_action Из класса PHP в членствах WooCommerce Зачем использовать dom для анализа веб-страниц вместо регулярного выражения? PHP – обрезание изображения с помощью imagecopyresampled ()? Когда mysql_query возвращает false Запросить данные из формы с несколькими входами, использующими одно и то же имя PHP, Неустранимая ошибка: вызов неопределенного метода, почему? Объединение перекрывающихся диапазонов в массивах PHP? Как читать XML-файл и извлекать из него значения для отображения в HTML-кодированной HTML-странице PHP CodeIgniter: файл не загружается достаточно быстро, и он продолжает процесс без файла Несколько слоев обслуживания и транзакции базы данных Отображение Doctrine 2, ссылающееся на уникальный ключ Как интегрировать COUNT (*)?

Composer throws Класс Fxp \ Composer \ AssetPlugin \ Repository \ NpmRepository не существует

Я установил последнюю версию (1.0.0. Stable) композитора и в моем проекте Yii2 я набрал это:

php composer.phar update

Это дает мне эту ошибку:

[ReflectionException] Класс Fxp \ Composer \ AssetPlugin \ Repository \ NpmRepository не существует

[ErrorException] Объявление Fxp \ Composer \ AssetPlugin \ Repository \ AbstractAssetsRepository :: whatProvides () должно быть совместимо с Composer \ Repository \ ComposerRepository :: whatProvides (Composer \ DependencyResolver \ Pool $ pool, $ name, $ bypassFilters = false)

Может кто-нибудь помочь мне, как это исправить?

Вот мой композитор.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" } } } 

Около девяти дней назад Composer\Repository\ComposerRepository::whatProvides api изменился. ( # 2668 ) Итак, если вы установили fxp/composer-asset-plugin глобально, вы должны его обновить. Вы можете сделать это с помощью:

 php composer.phar global update fxp/composer-asset-plugin --no-plugins 

Попробуйте это, если обновление не работает.

 composer global require fxp/composer-asset-plugin --no-plugins 

Я решил решить проблему, удалив каталог fxp из каталога .composer . В моей настройке это делает трюк:

 rm -rf ~/.composer/vendor/fxp 

Теперь, когда что-то нужно, он может просто повторно загрузить обновленный плагин.

Попробуйте отредактировать свой глобальный composer.json , запустив:

vi ~/.composer/composer.json тогда убедитесь, что у вас есть эта строка:

 { "require": { "fxp/composer-asset-plugin": "1.1.*" } } 

приведенные выше ответы не сработали для меня, потому что версия моего fxp/composer-asset-plugin была как 1.1-beta04 , когда я изменил ее на "1.1.8" и 1.1-beta04 команду обновления:

 php /usr/bin/composer global update fxp/composer-asset-plugin --no-plugins 

Это устранило проблему. но без редактирования моего глобального composer.json , он дал мне эту ошибку:

Ваши требования не могут быть решены с помощью устанавливаемого набора пакетов.

Проблема 1 – Запрос на установку для fxp / composer-asset-plugin 1.0.0-beta3 -> выполним с помощью fxp / composer-asset-plugin [v1.0.0-beta3]. – fxp / composer-asset-plug-in-v1.0.0-beta3 требует, чтобы композитор-plugin-api 1.0.0 -> не нашел подходящего пакета.

Потенциальные причины: – Опечатка в имени пакета. Пакет недоступен в достаточно стабильной версии в соответствии с настройкой минимальной стабильности см. https://getcomposer.org/doc/04-schema.md#minimum-stability для более подробно.

Прочтите https://getcomposer.org/doc/articles/troubleshooting.md для получения дополнительных общих проблем.

Если ни одно из других решений не сработало для вас, попробуйте AssetPackagist в качестве альтернативы.

  1. Добавьте пакеты bower-asset / bootstrap и npm-asset / jquery в composer.json следующим образом:

     "require": { "bower-asset/bootstrap": "^3.3", "npm-asset/jquery": "^2.2" } 
  2. Добавьте блок репозиториев (если у вас его еще нет, если хотите, просто добавьте его) со следующим содержимым:

     "repositories": [ { "type": "composer", "url": "https://asset-packagist.org" } ] 
  3. Запустить composer install (или composer update )

  4. Учитывая, что asset-packagist устанавливает активы в другом каталоге, добавьте следующие строки в конфигурацию вашего приложения (обычно называемое web.php):

     $config = [ 'aliases' => [ '@bower' => '@vendor/bower-asset', '@npm' => '@vendor/npm-asset', ], ]; 

Эти инструкции могут меняться со временем. Они были скопированы с веб-сайта репо, чтобы они могли продержаться вовремя на случай, если что-то случится с веб-сайтом. Я не являюсь автором репо, но я очень ценю усилия, предпринятые в нем. Пожалуйста, проверьте https://asset-packagist.org/site/about, чтобы узнать больше о проекте.


Если вы боретесь с композитором, у вас есть несколько полезных команд:

composer clear-cache – Очистить записи, связанные с композитором

composer install -vvv – добавьте параметр «vvv», чтобы показать результат, связанный с процессом установки (полезно для отладки)

Composer composer global show – Полезно проверить, установлен ли у вас установленный fxp / composer-asset-plugin . В моем случае это уже было, однако оно не было обнаружено как зависимость, и решение, которое я описал ранее, работало безупречно для меня – надеюсь, что это сработает и для вас!

В моем случае проект на Yii2

 $ composer [ReflectionException] Class Fxp\Composer\AssetPlugin\Repository\NpmRepository does not exist [ErrorException] Declaration of Fxp\Composer\AssetPlugin\Repository\AbstractAssetsRepository ::whatProvides() should be compatible with Composer\Repository\ComposerRepo sitory::whatProvides(Composer\DependencyResolver\Pool $pool, $name, $bypass Filters = false) 

Yii2, в папке vendor/fxp вам нужно заменить vendor/fxp composer-asset-plugin или удалить его.

Вы можете сделать постоянное исправление, требуя его на глобальном уровне, а затем оно будет разрешено для каждого другого проекта. Но затем убедитесь, что вы даете чаевые всем членам вашей команды.

Лучше всего добавить это в объем проекта, и он решает все таким образом.

Так:

composer require fxp/composer-asset-plugin