關於composer install/update/require

Laravel等專案中,通常會用compsoer管理套件相依,常常會看到composer.lock和composer.json,標題的三個composer指令常常混淆,因此做個筆記。

重點: composer.lock是記錄實際上vender裏安裝的版本,保證團隊裡每個人安裝了一樣的套件相依,上線的server安裝了一樣的套件。

A. composer install
1.會去安裝composer.lock的版本。一般是要部署一個別人創立的專案時,要安裝vender用的。
2.若無composer.lock,則會去照composer.json安裝,並生成composer.lock。一般是在新創專案時的步驟,寫好composer.json,下composer install,這樣的case通常只做一次

所以一般會加到git的是composer.lock,來確保每個人安裝到相同的套件版本。

B. composer require
添加package
composer require new/package
composer require “xxx/xxx:2.9.1”
會去添加安裝的版本,加入dependency入composer.json和composer.lock

要幫專案增加package的時候用這個!

C. composer update
composer update 和 composer update vendor/package
會從composer.json安裝最新的package,會更新composer.json和composer.lock

注意!警告!因為package改版,有的會不向下相容,會讓原本預期的行為改變,團隊中如果有某個人擅自更動套件的版本也是個災難,所以清楚知道自己在做什麼再用。

參考資料:正確的composer擴展包安裝方法
https://laravel-china.org/topics/1901/correct-method-for-installing-composer-expansion-pack

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.