Skip to content

Task

現代化任務運行器

軟體分類 生產力 / 開發工具
軟體標籤
rated-1man
開發廠商 Andrey G.
Stars
15.1k
Forks
803
License
MIT
Version
v3.40.1
Update
2026-03-10
OS

產品說明

Task (亦常被稱為 go-task) 是一款使用 Go 語言編寫的任務運行與建置工具。它的目標是取代傳統的 Makefile,提供開發者一個更現代、更易讀且跨平台一致的任務管理方案。

Makefile 相比,Task 使用廣為開發者熟悉的 YAML 格式來定義任務(Taskfile.yml)。它不僅解決了 Makefile 在 Windows 環境下相容性不佳的問題,還內建了強大的變數處理、相依性檢查以及條件執行機制。無論是單純的指令腳本自動化,還是複雜的專案編譯流程,Task 都能以最直覺的方式達成。

核心特色:

  • 易讀的 YAML 語法:告別 Makefile 晦澀的 Tab 縮排限制與語法,使用結構清晰的 YAML 定義任務。
  • 真正的跨平台:內建類 Shell 解釋器,讓同樣的 Taskfile 可以在 Windows、macOS 與 Linux 上無縫執行,無需擔心 Shell 環境差異。
  • 智慧增量建置:具備強大的 sourcesgenerates 檢查機制,如果輸入檔案未變更,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 之前必須先通過 testbuild

  • 內建函數:支援 {{OS}}{{USER}} 等範本變數,讓指令能根據執行環境自動調整。


操作介面