Wallogit.com
2017 © Pedro Peláez
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-assetto 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)