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

匿名 (未验证) 提交于 2019-12-03 02:44:02

问题:

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 :)

回答1:

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 :)



回答2:

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 


回答3:

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



回答4:

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



回答5:

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!



回答6:

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.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!