W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
我們都知道 Laravel 擴(kuò)展包的注冊會對應(yīng)用造成消耗。有一些擴(kuò)展包是開發(fā)環(huán)境中專用,生產(chǎn)環(huán)境中并不會使用到,為了避免無用的負(fù)載, 必須嚴(yán)格控制其安裝和加載。
安裝開發(fā)專用擴(kuò)展包時 必須 使用 --dev
參數(shù),如:
composer require laracasts/generators --dev
這樣擴(kuò)展包會被作為 require-dev
依賴標(biāo)記在 composer.json 文件中。
Prodction 和 Staging 環(huán)境,必須 使用以下命令來安裝 Composer 依賴:
composer install --no-dev
所有 composer.json 里 require-dev
選項(xiàng)配置的依賴包都不會被安裝。
開發(fā)業(yè)務(wù)功能,需要用到某個擴(kuò)展包,必須使用 composer require
將其加載至 composer.json 的 require
選項(xiàng)里。
以作者的一個經(jīng)歷來舉例:
某項(xiàng)目中,用到了 Laravel Admin 擴(kuò)展包,現(xiàn)在要開發(fā)用戶頭像上傳功能,需要截圖,最好的選擇是 ?intervention/image
? 包,在 IDE 中的代碼提示中,發(fā)現(xiàn)可以使用 Image 類,就直接寫代碼,而不是檢查 composer.json 文件。等項(xiàng)目上線后,就會發(fā)現(xiàn)運(yùn)行錯誤,Image 類找不到。
雖然 laravel-admin 包確實(shí)有加載 image 包,見 源碼:
"require-dev": {
"laravel/laravel": ">=5.5",
"fzaninotto/faker": "~1.4",
"intervention/image": "~2.3",
"laravel/browser-kit-testing": "^6.0"
},
但是加載的位置不對,使用的是 ?require-dev
?,也就是開發(fā)環(huán)境中加載,如果線上執(zhí)行 ?composer install --no-dev
? 的話,?intervention/image
? 包將不會被安裝。
最好的實(shí)踐就是,養(yǎng)成習(xí)慣,在使用第三方擴(kuò)展包時,檢查下 composer.json 文件,如未顯示在 require
選項(xiàng)中,即使用 composer require xxx/xxx
命令進(jìn)行加載。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: