Skip to content

pantoken / workspace-orchestrator

workspace-orchestrator

실험적

@pantoken/vite-workspace-orchestrator — 업스트림 워크스페이스 패키지를 감시하고 소스 변경 시 해당 패키지(및 종속 패키지)를 재빌드하는 Vite 개발 서버 플러그인입니다.

개발 중에는 로컬 워크스페이스 패키지의 변경 사항이 보통 수동 재빌드를 거쳐야 개발 서버에 반영됩니다. 이 플러그인은 이를 자동화합니다: 각 업스트림 패키지의 소스를 네이티브 fs.watch로 감시(프로젝트 루트 외부 경로를 필터링하는 Vite의 chokidar가 아니라), 급격한 변경을 디바운스하고 위상 정렬 순서로 재빌드하며, 빌드된 출력물을 Vite의 워처에 등록해 브라우저가 리로드되도록 합니다. pantoken의 문서에서는 라이브러리를 편집할 때 생성된 CSS(@pantoken/css, @pantoken/components)를 빌드 시점에만 갱신하는 대신 항상 최신 상태로 유지합니다.

이 플러그인은 serve 동안에만 적용되므로 프로덕션 빌드는 영향을 받지 않습니다.

예제

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")],
});

인터페이스

함수