鍍金池/ 教程/ PHP/ 我應(yīng)該提交 vendor 目錄中的依賴包嗎?
簡(jiǎn)介 中文文檔
腳本
命令行
資源庫(kù)
庫(kù)(資源包)
Composer PHP依賴管理的新時(shí)代
插件
別名
自定義安裝程序
二進(jìn)制供應(yīng)庫(kù)和 <code>vendor/bin</code> 目錄
如何為我的框架自定義一個(gè)資源包安裝目錄?
composer.json 架構(gòu)
我應(yīng)該提交 vendor 目錄中的依賴包嗎?
為什么 Composer 不遞歸加載儲(chǔ)存庫(kù)?
基本用法
為什么說(shuō)“比較符”和“通配符”相結(jié)合的版本約束是壞主意?

我應(yīng)該提交 vendor 目錄中的依賴包嗎?

一般情況下 不建議。vendor 目錄(或者你安裝依賴的其它目錄)都應(yīng)該被添加進(jìn) .gitignore/svn:ignore/等等。

最好這么做,然后讓所有開(kāi)發(fā)人員使用 Composer 來(lái)安裝依賴包。同樣,build server、CI、deployment tools 等等,應(yīng)進(jìn)行修改,使運(yùn)行 Composer 成為其項(xiàng)目引導(dǎo)的一部分。

雖然在某些環(huán)境下提交它是很讓人心動(dòng)的,但它將導(dǎo)致一些問(wèn)題:

  • 當(dāng)你更新代碼時(shí),將極大的增加 VCS 倉(cāng)庫(kù)的體積和差異。
  • 在你自己的 VCS 中將產(chǎn)生與你依賴的資源包重復(fù)的歷史記錄。
  • 通過(guò) git 的一個(gè) git 倉(cāng)庫(kù)安裝添加依賴,將把它們視作子模塊。這是有問(wèn)題的,因?yàn)樗鼈儾⒉皇钦嬲淖幽K,并且你將會(huì)遇到這些問(wèn)題。

如果你真的覺(jué)得你必須這樣做,你有幾個(gè)選擇:

  1. 限制自己安裝標(biāo)記版本(無(wú) dev 版本),這樣你只會(huì)得到 zip 壓縮的安裝,并避免 git“子模塊”出現(xiàn)的問(wèn)題。
  2. 使用 --prefer-dist 或在 config 選項(xiàng)中設(shè)置 preferred-installdist。
  3. 在每一個(gè)依賴安裝后刪除其下的 .git 文件夾,然后你就可以添加它們到你的 git repo 中。你可以運(yùn)行 rm -rf vendor/**/.git 命令快捷的操作,但這意味著你在運(yùn)行 composer update 命令前需要先刪除磁盤中的依賴文件。
  4. 新增一個(gè) .gitignore 規(guī)則(vendor/.git)來(lái)忽略 vendor 下所有 .git 目錄。這種方法不需要你在運(yùn)行 composer update 命令前刪除你磁盤中的依賴文件。
上一篇:別名下一篇:自定義安裝程序