A Composer package that allows you to install or update Yii2 without Bower-Asset.
-
Prevent the error of Bower packages when using Composer install & update for Yii2
Problem 1
- 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.
-
Skip Bower packages installation or update, No fxp/composer-asset-plugin needed
Bower packages are not original Packagist source from Composer, so it will cause error when you install or update Bower without a plugin (fxp/composer-asset-plugin
or Asset-Packagist
). After requiring this package, Bower packages will not be required or updated, which you will keep the current version of Bower or even no Bower in the project vendor.
If you are using Yii2 core Bower, the recommended way is using yidas/yii2-bower-asset which could install or update Bower for Yii2 without plugin.
In Yii2 composer.json
, require yidas/yii2-composer-bower-skip
before yiisoft/yii2
.
Example composer.json
:
"require": {
"php": ">=5.4.0",
"yidas/yii2-composer-bower-skip": "~2.0.5",
"yiisoft/yii2": "~2.0.5",
"yiisoft/yii2-bootstrap": "~2.0.0"
}
If you are using the version 2.0.13 or higher of Yii, you may optional remove the repositories
setting of composer.json
to use original Composer repository.
Example segament to delete in composer.json
:
"repositories": [
{
"type": "composer",
"url": "https://asset-packagist.org"
}
]
After that, you can run composer update
or composer install
without handling Bower-Asset.
If you doesn't has Yii2 project yet, choose one of below ways to create:
You can use Composer to create Yii2 project by using following package:
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.
You could download Yii2 project from official Archive File, then manally install yii2-composer-bower-skip
on it by following above instruction.
If you still get trouble with Bower after install this package, try to delete composer.lock
file and make sure the asset plugin is disabled:
composer global remove fxp/composer-asset-plugin
composer update
If you still want to keep vendor\bower
, you could set reverse Git-ignore for that folder:
# composer vendor dir
/vendor/*
!/vendor/bower
For example, you may lose Bower vendor after the project is pushed to Git server then re-install Composer from the clone one.
If you want keep whole vendor
ignored, you could take a look for yidas/yii2-bower-asset which support auto-install for Bower.
This solution is for the situation that you won't require or update Bower asset of Yii2 for development such as using yii2-debug
and yii2-gii
.
If you are using Yii2 Bower, there are some smooth ways to require or update Bower for Yii2:
yidas/yii2-bower-asset goals to install Bower for Yii2 app by original Composer repository, and makes Bower and Composer separated.
This is the recommended way to handle Bower with Yii2.
Asset-Packagist is the new solution of Yii2, you may install Bower smoothly in Yii2 with new version until release.