Skip to content

pantoken / workspace-orchestrator

workspace-orchestrator

ทดลอง

@pantoken/vite-workspace-orchestrator — ปลั๊กอิน dev-server ของ Vite ที่เฝ้าดูแพ็กเกจใน workspace ต้นน้ำ และคอมไพล์ใหม่ (รวมถึงแพ็กเกจที่พึ่งพา) เมื่อซอร์สมีการเปลี่ยนแปลง

ระหว่างการพัฒนา การเปลี่ยนแปลงในแพ็กเกจภายใน workspace มักต้องคอมไพล์ใหม่ด้วยตนเองก่อนที่ dev server จะสะท้อนการเปลี่ยนแปลง ปลั๊กอินนี้ช่วยอัตโนมัติ: เฝ้าดูซอร์สของแต่ละแพ็กเกจต้นน้ำด้วย fs.watch แบบเนทีฟ (ไม่ใช่ chokidar ของ Vite ซึ่งกรองเส้นทางนอกโครงการ), ลดความถี่การตอบสนอง เมื่อมีการเปลี่ยนแปลงอย่างรวดเร็ว, คอมไพล์ใหม่ตามลำดับทอพโซโลยี และลงทะเบียนเอาต์พุตที่คอมไพล์แล้วกับ watcher ของ Vite เพื่อให้เบราว์เซอร์รีโหลด ในเอกสารของ pantoken มันช่วยให้ CSS ที่สร้างขึ้น (@pantoken/css, @pantoken/components) สดใหม่ขณะแก้ไขไลบรารี แทนที่จะอัพเดตเฉพาะตอน build

จะทำงานเฉพาะระหว่าง serve เท่านั้น ดังนั้นการ build สำหรับ 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")],
});

อินเทอร์เฟซ

ฟังก์ชัน