是這樣的,如果其中一個人增加了一項依賴,並且是註冊到了Provider中。此時其他人更新完代碼後,執行composer update會出現錯誤。
我曾想吧vendor加入到git中。但是開發中有一些包是不需要放到生產環境的。
我想請教一下各位大俠,是怎麼處理這個問題的。
---更新---
我遇到的問題是這樣的。
假如有兩個開發人員,他們已經完成了項目的初始化。現在開發人員A在本地添加了依賴:
composer require vendor/package
這個包是一個Laravel的擴充,需要註冊一個ServiceProvider。所以開發人員A就需要在config/app.php中添加這個Provider。之後是一系列的後繼配置blabla~。OK,現在A可以提交代碼,並push到遠程分支了。
而後開發人員C(別問我B哪去了)pull下了代碼。現在他在執行的代碼時發現缺少依賴。那現在他需要添加這個依賴。
我現在的方式是執行了
composer update vendor/package
因為Laravel在composer.json中註冊了幾個鉤子,其中一個會在更新時執行。這個命令在初始化的時候,因為要載入ServiceProvider,而代碼中A添加的Provider在依賴中並不存在。所以composer就happy的拋出異常退出了。
這就是我的問題。請問大家是怎麼處理的
回複內容:
是這樣的,如果其中一個人增加了一項依賴,並且是註冊到了Provider中。此時其他人更新完代碼後,執行composer update會出現錯誤。
我曾想吧vendor加入到git中。但是開發中有一些包是不需要放到生產環境的。
我想請教一下各位大俠,是怎麼處理這個問題的。
---更新---
我遇到的問題是這樣的。
假如有兩個開發人員,他們已經完成了項目的初始化。現在開發人員A在本地添加了依賴:
composer require vendor/package
這個包是一個Laravel的擴充,需要註冊一個ServiceProvider。所以開發人員A就需要在config/app.php中添加這個Provider。之後是一系列的後繼配置blabla~。OK,現在A可以提交代碼,並push到遠程分支了。
而後開發人員C(別問我B哪去了)pull下了代碼。現在他在執行的代碼時發現缺少依賴。那現在他需要添加這個依賴。
我現在的方式是執行了
composer update vendor/package
因為Laravel在composer.json中註冊了幾個鉤子,其中一個會在更新時執行。這個命令在初始化的時候,因為要載入ServiceProvider,而代碼中A添加的Provider在依賴中並不存在。所以composer就happy的拋出異常退出了。
這就是我的問題。請問大家是怎麼處理的
1、有人已經require
包,就證明這個配置已經在 composer.json
檔案中了,對於你來說,你 pull 了代碼,只需要 composer install
就可以了,完全不需要update
的
2、另外一種情況避免問題,就是有大於一個的開發人員,那最好是確實誰是主導者,誰能決定一些什麼事情。
首先,新的包要放到composer.json裡面,然後只上傳該檔案到git裡面。其他團員可以隨時更新composer.json檔案。
其次,如果有些包只是在開發環境而不是線上環境的話,你可以放需要的包到:
"require-dev": { "codeception/codeception": "1.6.0.3"}//然後只安裝開發環境所需要的服務包 這樣你就可以隨時掌握不同的服務包在不同的環境下面了composer install --dev
你應該把執行composer update
時出的錯誤貼上來,否則別人不知道你出的究竟是什麼問題!
將 composer.json 加入 git 版本控管
vendor 包就不是問題了..