Boost composer-asset-plugin update speed

  1. TL;dr
  2. Using asset-packagist

If you're using a lot of bower and npm assets with Yii 2.0 you might encounter long running composer update tasks.

Luckily this issue can be avioded with the recently released version 1.2.0 of fxp/composer-asset-plugin, which can be confiugred to use native git instead of GitHub REST-API calls. You can read more about the details in this issue.

TL;dr

To enhance the speed composer you first need to update the asset-plugin

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

In your project's composer.json add the following settings to the extra section

"extra": {
    "asset-vcs-driver-options": {
        "github-no-api": true
    },
    "asset-pattern-skip-version": "(-build|-patch)"
},

Now you are ready to run

composer update -vv

While your very first run might take a while, due to cloning git-repositories, all subsequent updates should be blazingly fast now!

See also Use no-api option of VCS Githhub driver...

Bonus "prestissimo plugin"

To further improve speed you can also install this wonderful plugin, called prestissimo.

Bonus "Docker"

To use this new feature during local Docker (or VM) development, simply link your cache folder into your container (or VM).

php:
  image: dmstr/php-yii2:7.0-fpm 
  volumes:
    [...]
    - ~/.composer/cache:/root/.composer/cache

Example Docker image with pre-installed plugins & Yii 2.0 runtime

Using asset-packagist

Asset-packagist is a proxy website which exposes npm and bower packages as composer packages. It works way faster and doesn't require any plugins.