Cannot update yii2 via composer bower-asset/jquery could not be found

Composer PhpYii2

Composer Php Problem Overview


I was updating my yii2 via composer then reverted back to the old beta version.

Here is the error on my 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.

Tried searching for bower-asset/jquery at packagist but it is not found.

Thanks for the help :)

Composer Php Solutions


Solution 1 - Composer Php

Finally fixed it, just followed the steps on the UPGRADE.md doc

If you are using Composer to upgrade Yii, you should run the following command first (once for all) to install the composer-asset-plugin:

composer global require "fxp/composer-asset-plugin:^1.2.0"

(See http://www.yiiframework.com/doc-2.0/guide-start-installation.html#installing-from-composer for latest version.)

You may also need to add the following code to your project's composer.json file :

"extra": {
    "asset-installer-paths": {
        "npm-asset-library": "vendor/npm",
        "bower-asset-library": "vendor/bower"
    }
}

Hopes this helps :)

Solution 2 - Composer Php

For me helps to remove folder ~/.composer and execute command:

php composer.phar global require "fxp/composer-asset-plugin:1.*"

Then just run again

php composer.phar update

Solution 3 - Composer Php

Found a cleaner solution. Just add following repository in your composer.json file

"repositories": [
 {
  "type": "composer",
  "url": "https://asset-packagist.org"
 }
]

and watch the magic

Solution 4 - Composer Php

If you don't want to use fxp/composer-asset-plugin then all you have to do is to follow these simple instructions from Yii2 documentation.

Using asset-packagist repository

This way will satisfy requirements of the majority of projects, that need NPM or Bower packages.

> Note: Since 2.0.13 both Basic and Advanced application templates are > pre-configured to use asset-packagist by default, so you can skip this > section.

In the composer.json of your project, add the following lines:

"repositories": [
    {
        "type": "composer",
        "url": "https://asset-packagist.org"
    }
]

Adjust @npm and @bower aliases in you application configuration:

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

Visit asset-packagist.org to know, how it works.

Solution 5 - Composer Php

If you don't need the update for bower-asset, you can require yidas/yii2-composer-bower-skip before yiisoft/yii2. in composer.json file:

"require": {
    "php": ">=5.4.0",
    "yidas/yii2-composer-bower-skip": "~2.0.0",
    "yiisoft/yii2": "~2.0.5",
    "yiisoft/yii2-bootstrap": "~2.0.0"
}

After that, you can update Composer smoothly without bower-asset.

> See https://github.com/yidas/yii2-composer-bower-skip

Solution 6 - Composer Php

As described in YII2 repository documentation: https://asset-packagist.org/site/about We can solve this problem by adding aliases on those folders in our config. It will looks like that:

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

It works perfectly!

Solution 7 - Composer Php

Simple and clean solution:

In composer.json just replace the bower-asset/jquery line with: "yidas/yii2-bower-asset":"*"


I propose we add also bower-asset/datatables to the yidas/yii2-bower-asset


My Problems with accepted solution of adding fxp/composer-asset-plugin are that the plugin is significantly slowing down the composer system, impacts everywhere, isn't always portable across operating systems and environments, has errors with PHP7.2 relating to inconsistent method names. So, I prefer my quicker to develop, faster at runtime, more local, and more compatible solution.

Solution 8 - Composer Php

I tried all the mentioned steps like adding following in main.php

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

composer.json

"repositories": [
 {
  "type": "composer",
  "url": "https://asset-packagist.org"
 }
]

Doing "composer install/update" was still not installing bower packages given by yii2-bootstrap.

I found, I was using composer.phar 2x to set this up. I downgraded composer.phar to 1x and all works well without having the need of fxp/composer-asset-plugin plugin.

Solution 9 - Composer Php

Just in case for anyone upgrading Yii 2.0.41 - 2.0.43, should be noted that you need to install the "external" bower-asset.

Run the following

composer require yidas/yii2-bower-asset

Then, need to update the aliases inside config (depends on your structure) for the Yii to handle the new bower-asset folder.

// here is important part
'aliases' => [
    '@bower' => '@vendor/yidas/yii2-bower-asset/bower',
],

//below is just another config just ignore. example purpose don't copy
'components' => [
    'db' => [

Then, reload your Yii app. Should be fine.

-Extra-

Here is the example of the composer.json for anyone who need the updates to 2.0.43

{
"name": "yiisoft/yii2-app-advanced",
"description": "Yii 2 Advanced Application Template",
"keywords": ["yii2", "framework", "advanced", "application 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": "dev",
"require": {
    "php": ">=5.4.0",
    "yiisoft/yii2": "2.0.43",
    "yiisoft/yii2-bootstrap": "*",
    "yiisoft/yii2-swiftmailer": "~2.0@dev",
    "yiisoft/yii2-redis": "~2.0.0",
    "yiisoft/yii2-elasticsearch": "~2.0.0",
    "bryglen/yii2-apns-gcm": "1.0.5",
    "snhccm/baidu-push": "dev-master",
    "google/cloud": "dev-master",
    "minishlink/web-push": "6.0.7",
    "understeam/yii2-fcm": "~0.1",
    "yidas/yii2-bower-asset": "2.0.13"
},
"require-dev": {
    "codeception/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"
    }
}

}

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJefren InocandoView Question on Stackoverflow
Solution 1 - Composer PhpJefren InocandoView Answer on Stackoverflow
Solution 2 - Composer PhpIlya KolesnikovView Answer on Stackoverflow
Solution 3 - Composer PhpShahzad MalikView Answer on Stackoverflow
Solution 4 - Composer PhphsergeView Answer on Stackoverflow
Solution 5 - Composer PhpNick TsaiView Answer on Stackoverflow
Solution 6 - Composer PhpSlovyanskiyYehorView Answer on Stackoverflow
Solution 7 - Composer PhpAditya MittalView Answer on Stackoverflow
Solution 8 - Composer PhpTerryView Answer on Stackoverflow
Solution 9 - Composer PhpRasView Answer on Stackoverflow