Skip to content

pantoken / workspace-orchestrator

workspace-orchestrator

تجربی

@pantoken/vite-workspace-orchestrator — یک افزونهٔ سرور توسعهٔ Vite است که بسته‌های workspace بالادستی را زیرنظر می‌گیرد و وقتی سورس تغییر می‌کند آن‌ها (و وابستگانشان) را بازسازی می‌کند.

در حین توسعه، تغییرات در یک بستهٔ محلی workspace معمولاً نیاز به بازسازی دستی دارند تا سرور dev آن‌ها را منعکس کند. این افزونه آن را خودکار می‌کند: سورس هر بستهٔ بالادستی را با fs.watch بومی زیرنظر می‌گیرد (نه chokidar ویت که مسیرهای خارج از ریشهٔ پروژه را فیلتر می‌کند)، تغییرات سریع را debounce می‌کند، بازسازی را به ترتیب توپولوژیک انجام می‌دهد، و خروجی ساخته‌شده را با watcher ویت ثبت می‌کند تا مرورگر رفرش شود. در مستندات pantoken زمانی که کتابخانه‌ها را ویرایش می‌کنید، CSS تولیدشده (@pantoken/css, @pantoken/components) را تازه نگه می‌دارد، به‌جای اینکه تنها در زمان build به‌روزرسانی شود.

این افزونه تنها در حین serve اعمال می‌شود، بنابراین بیلدهای production دست‌نخورده باقی می‌مانند.

نمونه

ts
import { resolve } from "node:path";
import { workspaceOrchestrator } from "@pantoken/vite-workspace-orchestrator";

workspaceOrchestrator({
  upstream: [
    {
      name: "@pantoken/components",
      dir: resolve(root, "formats/components"),
      watchPaths: [resolve(root, "formats/components/src")],
      build: ["pnpm", "run", "build"],
      dependents: [],
    },
  ],
  outputWatchPaths: [resolve(root, "formats/components/generated")],
});

رابط‌ها

توابع