Не удается обновить yii2 с помощью composer bower -не удалось найти ресурс/jquery
Я обновлял свой yii2 через composer, а затем вернулся к старой бета-версии.
Вот ошибка моего композитора:
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- The requested package bower-asset/jquery could not be found in any version, there may be a typ
o in the package name.
Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your minimum-stability setti
ng
see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.
Read <http://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.
Попытался найти bower-asset/jquery в packagist, но он не найден.
Спасибо за помощь:)
7 answers
Наконец-то исправил это, просто последовал инструкциям на UPGRADE.md документ
Если вы используете Composer для обновления Yii, сначала (раз и навсегда) выполните следующую команду для установки плагина composer-asset:
composer global require "fxp/composer-asset-plugin:^1.2.0"
(См. http://www.yiiframework.com/doc-2.0/guide-start-installation.html#installing-from-composer для последней версии.)
Вам также может потребоваться добавить следующий код в файл вашего проекта composer.json
:
"extra": {
"asset-installer-paths": {
"npm-asset-library": "vendor/npm",
"bower-asset-library": "vendor/bower"
}
}
Надеется, что это поможет :)
Для меня помогает удалить папку ~/.composer и выполнить команду:
php composer.phar global require "fxp/composer-asset-plugin:1.*"
Затем просто запустите снова
php composer.phar update
Нашел более чистое решение. Просто добавьте следующий репозиторий в свой файл composer.json
"repositories": [
{
"type": "composer",
"url": "https://asset-packagist.org"
}
]
И наблюдайте за волшебством
Если вам не нужно обновление для bower-asset, вы можете запросить yidas/yii2-composer-bower-skip
перед yiisoft/yii2.
в файле composer.json
:
"require": {
"php": ">=5.4.0",
"yidas/yii2-composer-bower-skip": "~2.0.0",
"yiisoft/yii2": "~2.0.5",
"yiisoft/yii2-bootstrap": "~2.0.0"
}
После этого вы можете плавно обновлять Composer без bower-asset.
Если вы не хотите использовать fxp/composer-asset-plugin
, то все, что вам нужно сделать, это следовать этим простым инструкциям из документации Yii2 .
Использование репозитория-упаковщика активов
Этот способ удовлетворит требованиям большинства проектов, которым требуются пакеты NPM или Bower.
Примечание: Начиная с 2.0.13, как базовые, так и расширенные шаблоны приложений по умолчанию предварительно настроены для использования asset-packagist, поэтому вы можете пропустить этот раздел.
В в файл composer.json вашего проекта добавьте следующие строки:
"repositories": [
{
"type": "composer",
"url": "https://asset-packagist.org"
}
]
Настройте псевдонимы @npm и @bower в конфигурации вашего приложения:
$config = [
...
'aliases' => [
'@bower' => '@vendor/bower-asset',
'@npm' => '@vendor/npm-asset',
],
...
];
Посещение asset-packagist.org чтобы знать, как это работает.
Как описано в документации репозитория YII2: https://asset-packagist.org/site/about Мы можем решить эту проблему, добавив псевдонимы для этих папок в нашу конфигурацию. Это будет выглядеть так:
$config = [
...
'aliases' => [
'@bower' => '@vendor/bower-asset',
'@npm' => '@vendor/npm-asset',
],
...
];
Это работает отлично!
Простое и чистое решение:
В composer.json просто замените строку bower-asset/jquery на: "yidas/yii2-беседка-актив":"*"
Я предлагаю добавить также bower-asset/таблицы данных в yidas/yii2-bower-asset
Мои проблемы с принятым решением добавления плагина fxp/composer-asset заключаются в том, что плагин значительно замедляет работу системы composer, влияет повсюду, не всегда переносим в разных операционных системах и среды, имеет ошибки с PHP7.2, связанные с несогласованными именами методов. Поэтому я предпочитаю свое более быстрое в разработке, более быстрое во время выполнения, более локальное и более совместимое решение.