照片由 Kelly Sikkema 在 Unsplash 拍攝
軟體專案涉及多個階段,包括建置、測試和部署程式碼。
例如,編譯 Go 原始碼會產生可執行文件,而前端框架則編譯為 HTML、CSS 和 JavaScript 文件。
在合併變更或發布新版本之前,測試至關重要。部署腳本通常將軟體交付到生產環境。
每個階段都需要不同的工具,通常是具有各種標誌和參數的命令列實用程式。
自動化工具簡化了這些流程,並提高了日常工作流程的效率。
Makefile 是自動化軟體專案工作流程的強大工具。它們最初是為 C 程式開發的,現在支援網站生成和資料處理等多種任務。
Makefile 包含 make 實用程式建置或維護程式和檔案的指令。它定義了任務及其依賴關係,確保高效且可重複的建置。
我不會在這篇文章中深入探討 Makefile,因為我假設讀者熟悉這個概念。如果沒有,網路上有大量資訊(例如本教學或維基百科頁面)。
Makefile 的優點:
這些是我認為 Makefile 具有的主要優點。然而,Makefile 有局限性,特別是它們的語法,對於複雜的任務來說可能很麻煩。
在我的一個專案中,我使用 Makefile 來執行諸如運行前端/後端服務和資料庫遷移之類的任務。以下是遷移任務的範例:
我想預設從 .env 檔案載入環境變量,但允許使用 ENV_FILE=.env.Production 進行覆寫。在與 Makefile 語法和不起作用的解決方案進行鬥爭之後,我尋找替代方案。
Taskfile 是一個基於 Go 的任務執行器,使用 YAML 語法定義任務。它透過自動執行重複性任務(例如建置、測試和部署程式碼)來簡化專案工作流程。
任務文件的好處:
這是我如何使用任務文件解決我的問題:
Taskfile 直覺的 API 讓我能夠快速實作一個既實用又可讀的解決方案。
選擇正確的工具可以顯著影響生產力。雖然 Makefile 最初達到了其目的,但 Taskfile 為我的需求提供了更優雅的解決方案。轉換花了不到 30 分鐘,大大簡化了我的建造過程。
如果您正在尋找易於使用的建置工具,請考慮嘗試 Taskfile。
以上是為什麼我從 Makefile 切換到 Taskfile的詳細內容。更多資訊請關注PHP中文網其他相關文章!