Composer throws [ReflectionException] Class Fxp\Composer\AssetPlugin\Repository\NpmRepository does not exist

后端 未结 7 483
-上瘾入骨i
-上瘾入骨i 2020-12-07 13:18

I installed the latest version (1.0.0. stable) of composer and in my Yii2 project I typed this:

php composer.phar update

It gives me this error

相关标签:
7条回答
  • 2020-12-07 13:22

    You can make a permanent fix by requiring it at global level and then it's solved for every other project. But then make sure you give the tip to all your team members.

    Best is to add this at project scope and it solves to everybody that way.

    So:

    composer require fxp/composer-asset-plugin

    0 讨论(0)
  • 2020-12-07 13:26

    I ended up resolving the issue by removing the fxp directory from the .composer directory. On my setup, this does the trick:

    rm -rf ~/.composer/vendor/fxp
    

    Now when something needs it, it can just re-download the updated plugin.

    0 讨论(0)
  • 2020-12-07 13:27

    In my case project on 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, in folder vendor/fxp you need to replace the folder composer-asset-plugin or delete it.

    0 讨论(0)
  • 2020-12-07 13:28

    About nine days ago (around end of March, 2016), Composer\Repository\ComposerRepository::whatProvides api changed. (#2668) So, if you have installed fxp/composer-asset-plugin globally, you should update it. You can do that with:

    php composer.phar global update fxp/composer-asset-plugin --no-plugins
    
    0 讨论(0)
  • 2020-12-07 13:29

    Try to edit your global composer.json by running:

    vi ~/.composer/composer.json then make sure you have this line on it:

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

    the above answers did not work for me because the version of my fxp/composer-asset-plugin was like 1.1-beta04, when I changed it to "1.1.8" and run updating command:

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

    It fixed the problem. but without editing my global composer.json, it was giving me this error:

    Your requirements could not be resolved to an installable set of packages.

    Problem 1 - Installation request for fxp/composer-asset-plugin 1.0.0-beta3 -> satisfiable by fxp/composer-asset-plugin[v1.0.0-beta3]. - fxp/composer-asset-plugin v1.0.0-beta3 requires composer-plugin-api 1.0.0 -> no matching package found.

    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.

    0 讨论(0)
  • 2020-12-07 13:38

    Try this one if update doesn't work.

    composer global require fxp/composer-asset-plugin --no-plugins
    
    0 讨论(0)
提交回复
热议问题