Yii2國內(nèi)composer安裝速度優(yōu)化
一般情況下,我們在國內(nèi)直接使用composer進行安裝項目,速度會比較堪憂。經(jīng)過全網(wǎng)查找資料,筆者找到一個簡單有效的方法。
原因:
如果想探究速度慢的原因,很多文章也分析出來,分別是兩點:
一,composer的國外源比較慢
二,bower拉取前端資源有部分來自github
解決:
解決的方法很簡單,但是需要幾個配置均是對的,才能聯(lián)動生效。
一,把composer的源切換為國內(nèi)的源,可以是阿里云的,也可以是其他,自由選擇。本人一般配置到項目上,不部署在電腦全局,這樣項目在不同環(huán)境也會生效。
在composer.json的repositories下進行配置,代碼如下:
"repositories": [
? ? ? ? {
? ? ? ? ? ? "type": "composer",
? ? ? ? ? ? "url": "https://mirrors.aliyun.com/composer/"
? ? ? ? }
? ? ]
二,把bower替換為npm拉取前端資源
1.需要通過replace替換資源,使composer不再拉取資源,
在composer.json的replace下進行配置,代碼如下:
"replace": {
? ? ? ? "bower-asset/jquery": ">=1.11.0",
? ? ? ? "bower-asset/inputmask": ">=3.2.0",
? ? ? ? "bower-asset/punycode": ">=1.3.0",
? ? ? ? "bower-asset/yii2-pjax": ">=2.0.0",
? ? ? ? "bower-asset/bootstrap": ">=3.4.0"
? ? },
2.在項目文件夾新建package.json文件,對npm進行配置。
代碼如下:
{
? "dependencies": {
? ? "jquery": "^2.2.4",
? ? "bootstrap": "3.3.7",
? ? "inputmask": "^3.3.11",
? ? "jquery-treegrid": "^0.3.0",
? ? "jquery-ui": "^1.12.1",
? ? "punycode": "^2.1.0",
? ? "typeahead.js": "^0.11.1",
? ? "yii2-pjax": "^2.0.7"
? }
}
3.在項目配置文件main.php配置別名,使原來引用bower的資源可以正確引用
代碼如下:
'aliases' => [
? ? ? ? '@bower' => dirname(dirname(__DIR__)) . '/node_modules',
? ? ? ? '@npm' => dirname(dirname(__DIR__)) . '/node_modules',
? ? ],
最后,Yii2安裝速度較慢的問題,困擾了好幾年。經(jīng)過不懈的努力,終于找到這個有效的方法,之后Yii2莫名就變得可愛起來了。Yii2的composer安裝,往往就是勸退小白的第一步。