簡體   English   中英

TYPO3 + 作曲家 + 部署

[英]TYPO3 + Composer + Deployment

我認為在將項目遷移到作曲家時,一個很大的好處是留下一個小的項目存儲庫,其中所有作曲家管理的東西(TYPO3 源 + 公共擴展)都可以從 VCS 中排除。 在部署時,實時系統上的“composer install”總是會導致所需的 state 沒有風險。

但是官方TYPO3 文檔說:

您不應該在您的實時網絡空間上運行 composer。 您應該始終在本地或專用部署機器上運行 composer,這樣您就可以測試一切是否正常。 運行測試后,您可以將供應商和公用文件夾部署到 web 服務器。

我無法理解為什么。 因為這導致每個項目存儲庫都需要在項目 VCS 中包含整個 TYPO3 源,盡管它們可能在那里被排除在外。 這種方法的原因是什么?“我的”方法有什么風險?

編輯:當然我要指定確切的版本號,直到作曲家包的修訂級別。 這樣做,我的方法還會有任何風險嗎?

composer 可以以多種方式使用,我也想知道為什么 TYPO3 文檔在這里表現出如此強烈的觀點(沒有理由?)。

它指的是這個model:

  • 帶有 composer 的本地開發系統,用於更改 composer.json/composer.lock

  • 構建環境/CD 管道運行composer install --no-dev並將現成的文件系統復制到暫存/實時系統

  • 沒有作曲家的實時服務器與用戶數據集成(數據庫和 /fileadmin)

這是一些人(包括我)的首選,因為它有助於在可重現(構建)環境中進行測試步驟。 如果構建步驟包含的不僅僅是作曲家(例如資產構建),它也可以很好地工作。

雖然僅對於作曲家來說,如果它必須實時安裝(+它的依賴項)不會有很大的不同,但是您擁有的構建步驟越多,您必須實時安裝的“開發”軟件就越多。 這可能是一些人划清界限並決定開發 -> 構建 -> 直播是更強大的 model。

雖然構建環境很可能在實時服務器上,但我不希望它出現在已發布的 state 中(我不知道您是否提到過)。 所以我會至少做一些復制(或者更確切地說是符號鏈接切換),以確保構建/測試期間的問題不會影響已發布的站點。

其他模型也可以。

當您使用 composer 通過composer install為您的 TYPO3 環境獲取源代碼時,您並不確切知道您將獲得哪個版本的 TYPO3 擴展。 composer.json 文件定義了允許的版本號范圍,而不是確切的版本號。 當您有本地或部署環境時,composer 安裝將為您提供版本 1 中的 state 擴展 1,版本 2 中的擴展 2。然后您測試一切。 2 周后,您決定一切正常。 但是,如果您在 2 周后在您的實時系統上使用 composer,則可能會發生擴展 1 現在處於版本 2 中的情況,該版本存在嚴重錯誤。 然后作曲家運行會給你帶來這個擴展 1 的錯誤版本 2。這不是你想要的。

存在一種解決方法。

如何使用 Composer 安裝特定版本的 package?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM