4

I deleted my vendor/ directory and ran composer update, but it's giving me an error.

$ composer update
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 typo in the package name.
  Problem 2
    - yiisoft/yii2 2.0.7 requires bower-asset/jquery 2.2.*@stable | 2.1.*@stable | 1.11.*@stable -> no matching package found.
    - yiisoft/yii2 2.0.6 requires bower-asset/jquery 2.1.*@stable | 1.11.*@stable -> no matching package found.
    - yiisoft/yii2 2.0.5 requires bower-asset/jquery 2.1.*@stable | 1.11.*@stable -> no matching package found.
    - yiisoft/yii2 2.0.4 requires bower-asset/jquery 2.1.*@stable | 1.11.*@stable -> no matching package found.
    - yiisoft/yii2 2.0.3 requires bower-asset/jquery 2.1.*@stable | 1.11.*@stable -> no matching package found.
    - yiisoft/yii2 2.0.2 requires bower-asset/jquery 2.1.*@stable | 1.11.*@stable -> no matching package found.
    - yiisoft/yii2 2.0.1 requires bower-asset/jquery 2.1.*@stable | 1.11.*@stable -> no matching package found.
    - yiisoft/yii2 2.0.0 requires bower-asset/jquery 2.1.*@stable | 1.11.*@stable -> no matching package found.
    - Installation request for yiisoft/yii2 * -> satisfiable by yiisoft/yii2[2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5, 2.0.6, 2.0.7].

Potential causes:
 - A typo in the package name
 - The package is not available in a stable-enough version according to your minimum-stability setting
   see <https://getcomposer.org/doc/04-schema.md#minimum-stability> for more details.

Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.

I even tried to manually add "bower-asset/jquery": "*", but it didn't help.

composer.json
{
    "name": "yiisoft/yii2-app-basic",
    "description": "Yii 2 Basic Application Template",
    "keywords": ["yii2", "framework", "basic", "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": "stable",
    "require": {
        "php": "~5.4",
        "ext-gd": "*",
        "ext-soap": "*",
        "ext-mcrypt": "*",
        "ext-mbstring": "*",
        "yiisoft/yii2": "*",
        "yiisoft/yii2-bootstrap": "*",
        "yiisoft/yii2-swiftmailer": "*",
        "yiisoft/yii2-redis": "~2.0",
        "yiisoft/yii2-debug": "*",
        "bower-asset/jquery": "*",
        "exeu/apai-io": "*",
        "mervick/yii2-mthaml": "*",
        "googleads/googleads-php-lib": "~6.5"
    },
    "require-dev": {
        "heroku/heroku-buildpack-php": "*",
        "yiisoft/yii2-codeception": "*",
        "yiisoft/yii2-gii": "*",
        "yiisoft/yii2-faker": "*"
    },
    "config": {
        "process-timeout": 1800
    },
    "scripts": {
        "post-create-project-cmd": [
            "yii\\composer\\Installer::postCreateProject"
        ],
        "compile": "php yii asset assets.php config/assets-prod.php"
    },
    "extra": {
        "yii\\composer\\Installer::postCreateProject": {
            "setPermission": [
                {
                    "runtime": "0777",
                    "web/assets": "0777",
                    "yii": "0755"
                }
            ],
            "generateCookieValidationKey": [
                "config/web.php"
            ]
        },
        "asset-installer-paths": {
            "npm-asset-library": "vendor/npm",
            "bower-asset-library": "vendor/bower"
        }
    },
    "autoload": {
      "classmap": [
        "vendor/googleads/googleads-php-lib/src/Google/Api/Ads/Common/Util"
      ]
    }
}

That package seems to exist.

$ composer search bower | grep jquery
bower-asset/jquery
Community
  • 1
  • 1
Chloe
  • 25,162
  • 40
  • 190
  • 357

3 Answers3

5

You should run first

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

This command installs the composer asset plugin which allows managing bower and npm package dependencies through Composer.

As said one of contributors of Yii

We're going to fix that in 2.1.

s_mart
  • 735
  • 7
  • 21
0

I deleted the "bower-asset/jquery": "*" line and ran composer global require fxp/composer-asset-plugin --no-plugins then composer update worked. Composer seems to suck. I wish it worked as good as gem for Ruby.

Chloe
  • 25,162
  • 40
  • 190
  • 357
  • Composer does not suck, but the creators of plugins that allow you doing things that Composer wasn't built for in the first place. Please blame the `fxp/composer-asset-plugin`. – Sven Apr 25 '16 at 18:47
0

If you don't want to use plugin to install Bower for Yii2, you could try yii2-bower-asset.

This package has fixed Bower for Yii2, which separates Bower and Composer.

However, Yii will go to use Asset Packagist instead of Plugin in 2.1 version, but not now.

https://github.com/yidas/yii2-bower-asset

Nick Tsai
  • 3,799
  • 33
  • 36