动态

详情 返回 返回

加速你的 Bun 並行開發:bun-tasks 全攻略 - 动态 详情

加速你的 Bun 並行開發:bun-tasks 全攻略

如果你在 Bun 項目裏需要同時運行多個腳本,又不想為兼容性煩心,bun-tasks 會是最順手的選擇。這個專為 Bun 設計的並行任務運行器,幫你在一條命令中啓動多個任務、智能合併環境變量,並自動識別 package.json 中的腳本。只要先確認環境裏 bun --version 可用,就能即刻體驗 Bun 原生的多任務流程。

為什麼選擇 bun-tasks

  • 專注 Bun 生態:完全基於 Bun 運行時開發,無需 Node 兼容層,安裝配置更輕鬆。
  • 直觀的命令分隔符:使用 ::: 將多個命令串聯,Bun 會按原樣保留引號和空格,避免 Shell 干擾。
  • 靈活的環境變量注入:全局 --args / -a 與命令級參數可疊加,重複鍵以命令級優先生效。
  • 自動腳本映射:直接寫腳本名稱,內部會自動轉換成 bun run <script>,無需重複輸入 Bun。
  • 原汁原味的輸出:開啓 --raw / -r 時將直接繼承子進程的標準輸出,對於 Parcel 等需要保留進度條和顏色的工具尤為友好。
  • 可編程接口:導出的 BunTasksCLI 類不會在 import 時執行,方便集成到自定義腳本或服務。

快速上手

  1. 安裝到項目

    bun add -D bun-tasks
  2. package.json 中配置腳本

    {
      "scripts": {
        "dev": "bun-tasks --args NODE_ENV=dev api ::: docs --args PORT=4000"
      }
    }
  3. 定義被調用的子命令

    {
      "scripts": {
        "api": "bun run src/api.ts",
        "docs": "bun run docs:watch",
        "dev": "bun-tasks api ::: docs"
      }
    }
  4. 啓動並行任務

    bun run dev

運行後,多個任務會帶着編號前綴同時輸出,日誌來源一目瞭然。

常用參數速覽

  • --help, -h:查看幫助。
  • --version, -v:顯示當前版本。
  • --args, -a:注入環境變量,支持全局或單個命令。
  • --raw, -r:繼承子進程輸出,保持顏色與進度條效果。

程序化調用示例

import { BunTasksCLI } from "bun-tasks";

const cli = new BunTasksCLI();
await cli.run(["echo", "hello", ":::", "echo", "world"], {
  stdoutPrefix: (index) => `[job-${index}]`,
  mirrorStderrToStdout: true,
});

該示例演示如何在自定義腳本中複用 bun-tasks 的核心邏輯,輸出前綴和錯誤鏡像都能靈活控制。

開發與測試建議

bun install
bun test --coverage
提示:Bun 在原生 Windows 上的覆蓋率輸出仍在完善中,如遇異常可暫時去掉 --coverage 或在 WSL 中運行。

致謝

本項目部分代碼由 GPT-5-Codex 協助完成。


準備好給 Bun 任務管理提速了嗎?立即下載並關注最新進展:

  • npm:https://www.npmjs.com/package/bun-tasks
  • GitHub:https://github.com/gxy5202/bun-tasks

bun-tasks 幫你保持 Bun 的速度與並行效率!

user avatar Leesz 头像 yinzhixiaxue 头像 nihaojob 头像 freeman_tian 头像 dirackeeko 头像 aqiongbei 头像 chongdianqishi 头像 razyliang 头像 leexiaohui1997 头像 longlong688 头像 huajianketang 头像 Dream-new 头像
点赞 189 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.