2017-03-27 17 views
0

我正在處理一個有很多git存儲庫的大型項目。我可以很容易地保持同步是這樣的:保持本地和生產composer.json文件同步?

https://getcomposer.org/doc/05-repositories.md#path

"repositories": [ 
    { "type": "path", "url": "../another-component" }, 
    { "type": "path", "url": "../yet-another-component" } 
] 

如果我運行作曲家這將爲提供的每個倉庫供應商我的文件夾內的一個符號鏈接。通過這種方式,無論何時我更新倉庫之外的其中一個倉庫,更改都會立即反映出來。

這是一個完美的本地開發解決方案,但在生產中,我只想擁有一個指向在線Github存儲庫並從Github提取存儲庫的作曲文件。

當然這個作曲家文件看起來有點不同,因爲類型將被設置爲vcs,並且url的指向Github而不是相對路徑。

人們如何做到這一點爲本地/生產設置?你只是維護2個獨立的作曲家文件,一個用於本地開發,另一個用於製作?

這意味着每當我添加另一個存儲庫到我的代碼庫時,我必須記住要在2個地方更新它,或者我的整個代碼庫發生故障。

+0

我一直將依賴關係推送到遠程vcs,並使用單個composer.json。不明白爲什麼它是一個問題。 –

+0

@AlexBlex我的'composer.json'的'require'部分保持完全一樣,所以依賴關係本身保持完全相同。本地我想我的網址指向我的文件系統。在productinn中,我想將我的網址指向一個實際的Github回購。 –

+0

我也剛剛發現這個話題,討論了一個非常類似的問題:https://github.com/composer/composer/issues/6158這個主題也出現在作曲家的'問題'部分多次我正在研究它。我只是希望有人能爲此提供一個更清晰的解決方案,然後是目前可用的解決方案。 –

回答

-1

因爲看起來你的組件已經在線託管,所以我建議只讓作曲者從Github上拉下來,像其他任何依賴項一樣管理它們,無論是從開發還是生產。

+0

他們是作曲家軟件包,否則這首先不起作用,因爲作曲家正在這些目錄中尋找一個'composer.json'文件。我已經用作曲家管理他們了,這個問題是關於在本地還是在生產上進行管理。在生產中,您會指向一個Github倉庫,而不是使用相對路徑。 –

+0

我的錯誤,沒有意識到「本地路徑」選項仍然要求目標是一個作曲家包;我編輯了我的答案。我可以問一下,在開發過程中,不要讓作曲者從Github上拉出你的組件,就像你在製作中一樣? – Likeyn

+0

如果您在10多個存儲庫中工作,並快速在所有這些存儲庫之間進行更改,因爲這些存儲庫的全部內容構成了您的代碼,所以您絕對需要始終推送和提取每個存儲庫。您想要將這些更改立即反映到主應用程序庫中。作曲者的「路徑」選項通過將其他存儲庫符號鏈接到主應用程序的供應商目錄來實現。 –

相關問題