Bower Assets for Yii 2 app provided via Composer repository
Yii 2 core Bower packages for official Composer repository installation, (*2)
*Install or update Bower assets for Yii 2 app via Composer **without any plugin (Even v2.0.13 above)*, (*4)
Prevent the error of Bower packages when using Composer install & update for Yii2, (*5)
Problem 1, (*6)
- yiisoft/yii2 2.0.12 requires bower-asset/jquery 2.2.@stable | 2.1.@stable | 1.11.@stable | 1.12.@stable -> no matching package found., (*7)
Official install way by using original Composer repository, (*8)
Got tired of fxp/composer-asset-plugin? It's a good project with nice idea and good implementation. But it has some issues: it slows down composer update a lot and requires global installation, so affects all projects. Also there are Travis and Scrutinizer integration special problems, that are a bit annoying., (*9)
Compare with Asset Packagist, this package only for installing the Bower packages for Yii2 app by using original Composer repository, which goals to makes Bower separated from Composer ., (*10)
This Bower asset supports Yii 2 core(yiisoft/yii2
) such as widgets or validators., (*11)
For the Yii 2 application templates(yii2-app-basic
& yii2-app-advanced
), this also supports yii2-bootstrap
and others for dependent packages such as yii2-debug
& yii2-gii
., (*12)
In Yii2 composer.json
, require yidas/yii2-bower-asset
before yiisoft/yii2
., (*13)
Example composer.json
:, (*14)
"require": { "php": ">=5.4.0", "yidas/yii2-bower-asset": "~2.0.5", "yiisoft/yii2": "~2.0.5", "yiisoft/yii2-bootstrap": "~2.0.0" }
After above setting, you could run composer require yidas/yii2-bower-asset
to install the package. It's same as yidas/yii2-composer-bower-skip which makes composer to install and update for Yii2 without Bower plugin., (*15)
In Yii2 application config/web.php
, added an alias named @bower
pointed to @vendor/yidas/yii2-bower-asset/bower
:, (*16)
$config = [ ... 'aliases' => [ '@bower' => '@vendor/yidas/yii2-bower-asset/bower' ], ... ];
This method is the better way with efficient and clean considering. Instead, you could also use installer to set up:, (*17)
If you are using the version 2.0.13 or higher of Yii, you may remove the repositories
setting of composer.json
to use original Composer repository., (*20)
Example segament to delete in composer.json
:, (*21)
"repositories": [ { "type": "composer", "url": "https://asset-packagist.org" } ]
Finally, command composer update
then enjoy it., (*22)
If you doesn't has Yii2 project yet, choose one of below ways to create:, (*23)
You can use Composer to create Yii2 project by using following package:, (*24)
composer create-project --prefer-dist yidas/yii2-app-basic
composer create-project --prefer-dist yidas/yii2-app-advanced
These packages are Yii 2 Application Template with fixed Bower, which including yidas/yii2-bower-asset
already., (*25)
You could download Yii2 project from official Archive File, then manally install yii2-bower-asset
on it by following above instruction., (*26)
If you don't want to Set Up Application Config but use installer instead, there are some ways you could chooses one of them to install:, (*27)
In Yii2 composer.json
, add script yidas\\yii2BowerAsset\\Installer::bower
in post-package-install
& post-package-update
event., (*28)
"scripts": { "post-package-install": [ "yidas\\yii2BowerAsset\\Installer::clone" ], "post-package-update": [ "yidas\\yii2BowerAsset\\Installer::clone" ] }
In Yii2 composer.json
, add script yidas\\yii2BowerAsset\\Installer::setAlias
in post-update-cmd
event., (*29)
"scripts": { "post-package-install": [ "yidas\\yii2BowerAsset\\Installer::setAlias" ], "post-package-update": [ "yidas\\yii2BowerAsset\\Installer::setAlias" ], "unset-yii2-bower-asset": [ "yidas\\yii2BowerAsset\\Installer::unsetAlias" ] }
This installation will modify Yii2 file, you can run
composer run-script unset-yii2-bower-asset
to recover back., (*30)
Do not use Bower mixed with Composer project is the goal of this package., (*31)
The variety of Bower packages are just for Yii2 cores., (*32)
The versions of Bower packages are fixed to current Yii2 version., (*33)
If you are requiring other Bower packages in Yii2, you could set the config fit to this package or not to use., (*34)