遇到的Composer update問題:
yiisoft/yii2 2.*.* requires bower-asset/jquery *.*.*@stable | ... -> no matching package found.
Yii官網解:composer global require fxp/composer-asset-plugin
本篇是針對不使用Plugin提供解法。
原因:
bower-asset在Packagist已經是Virtual Package,以下為bower因果:
Update: bower 在 0.9.0 版以前可以使用 component.json,但是為了避免跟其他工具命名衝突,故 0.9.0 以後版本請改為 bower.json bower 是 Twitter 團隊開發的一套網頁工具,用來管理或安裝 Web 開發所需要的 Package,像是 CSS 和 JavaScript,也可以依據套件的相依性來安裝,簡單來說,開發者不用再去煩惱套件相依性問題,以及時間久了想更新最新版本,還要到各 Package 網站來下載,這些步驟都省了,一個指令就可以全部做完上述的步驟。
解法:
解法一:略過bower-asset不安裝
yidas/yii2-composer-bower-skip
可以使用yidas/yii2-composer-bower-skip來略過bower-asset更新Composer:
在composer.json
內,yiisoft/yii2
之前加入yidas/yii2-composer-bower-skip
:
"require": {
"php": ">=5.4.0",
"yidas/yii2-composer-bower-skip": "~2.0.0",
"yiisoft/yii2": "~2.0.5",
"yiisoft/yii2-bootstrap": "~2.0.0"
}
之後執行composer update
解決!
解法二:原始Composer bower-asset安裝包
在composer.json
內,yiisoft/yii2
之前加入yidas/yii2-bower-asset
:
"require": {
"php": ">=5.4.0",
"yidas/yii2-bower-asset": "~2.0.0",
"yiisoft/yii2": "~2.0.5",
"yiisoft/yii2-bootstrap": "~2.0.0"
}
README目前提供三種安裝方式,以下介紹第一種:
$config = [
...
'aliases' => [
'@bower' => '@vendor/yidas/yii2-bower-asset/bower'
],
...
];
provide原理:
"provide": {
"bower-asset/jquery": "*",
"bower-asset/jquery.inputmask": "*",
"bower-asset/punycode": "*",
"bower-asset/yii2-pjax": "*",
"bower-asset/bootstrap": "*",
"bower-asset/typeahead.js": "*"
}
懶人安裝:
yidas/yii2-app-basic
composer create-project --prefer-dist yidas/yii2-app-basic
yidas/yii2-app-advanced
composer create-project --prefer-dist yidas/yii2-app-advanced
十分感谢你的这个仓库,解决了大问题。