Task
現代化任務運行器
軟體分類 生產力 / 開發工具
軟體標籤
rated-1man
開發廠商 Andrey G.
產品說明
Task (亦常被稱為 go-task) 是一款使用 Go 語言編寫的任務運行與建置工具。它的目標是取代傳統的 Makefile,提供開發者一個更現代、更易讀且跨平台一致的任務管理方案。
與 Makefile 相比,Task 使用廣為開發者熟悉的 YAML 格式來定義任務(Taskfile.yml)。它不僅解決了 Makefile 在 Windows 環境下相容性不佳的問題,還內建了強大的變數處理、相依性檢查以及條件執行機制。無論是單純的指令腳本自動化,還是複雜的專案編譯流程,Task 都能以最直覺的方式達成。
核心特色:
- 易讀的 YAML 語法:告別 Makefile 晦澀的 Tab 縮排限制與語法,使用結構清晰的 YAML 定義任務。
- 真正的跨平台:內建類 Shell 解釋器,讓同樣的 Taskfile 可以在 Windows、macOS 與 Linux 上無縫執行,無需擔心 Shell 環境差異。
- 智慧增量建置:具備強大的
sources與generates檢查機制,如果輸入檔案未變更,Task 會自動跳過執行,大幅節省開發時間。 - 輕量且無依賴:單一二進位檔案即可執行,安裝極其簡單,非常適合整合進 CI/CD 流程中。
常用指令
Task 的核心在於專案根目錄下的 Taskfile.yml,設定好後即可透過簡易指令觸發。
基礎操作
# 執行預設任務 (default)
task
# 執行特定任務 (例如名為 build 的任務)
task build
# 列出所有可用的任務及其說明
task --list
# 強制執行任務 (忽略快取/增量檢查)
task --force build
| 指令/熱鍵 | 功能說明 | 對應操作 |
|---|---|---|
| task –init | 初始化專案 | 在當前目錄建立範本 Taskfile.yml |
| task -w [task] | 觀測模式 (Watch) | 監控檔案變更並自動重新執行任務 |
| task –summary | 任務摘要 | 顯示特定任務的詳細執行步驟與預期輸出 |
| task -p | 平行執行 | 同時執行多個不相干的任務以加速流程 |
進階技巧
變數與環境變數:支援動態變數定義,可以透過命令列傳參:
task build VERSION=v1.0.0。任務相依性:可以輕鬆定義任務的前置需求(deps),例如在
deploy之前必須先通過test與build。內建函數:支援
{{OS}}、{{USER}}等範本變數,讓指令能根據執行環境自動調整。
操作介面




![]()
