"기본 레이아웃은 루트에 앱 하나야. 근데 진짜 프로젝트는 그 앱이 여러 폴더 중 하나이길 원할 때가 많아."
왜 모노레포
스캐폴드는 앱을 레포 루트에 놔. 앱이 하나면 그걸로 완벽해. 근데 Tauri 앱을 더 큰 레포 안에 두고 싶을 수 있잖아 — 공유 컴포넌트 라이브러리랑 문서 사이트랑 형제 프로젝트 옆에. 그게 모노레포고, Tauri는 이걸 잘 견뎌. 경로 몇 개만 제대로 가리키면 돼.
Cinder가 딱 이래. Tauri 앱은 apps/cinder/에 살고, 네이티브 반쪽은 apps/cinder/src-tauri/에서 다른 workspace 패키지들 옆에 앉아 있어. Tauri의 어떤 부분도 루트 레이아웃을 강요하지 않아. 설정에 적힌 경로만 제대로 풀리면 그만이야.
규칙은 하나: 경로는 src-tauri 기준
tauri.conf.json에 적는 경로 — 특히 frontendDist랑 devUrl — 는 레포 루트가 아니라 src-tauri/ 디렉터리를 기준으로 풀려. 프론트엔드가 apps/cinder/dist로 빌드되는 모노레포에서도 src-tauri/가 dist/ 바로 옆에 앉아 있으니 frontendDist는 여전히 ../dist야. 이 상대경로 감각만 잡히면 모노레포 Tauri는 하나도 안 신비로워.
workspace에서 CLI 돌리기
npm이나 pnpm이나 yarn workspaces에선 Tauri CLI를 앱 패키지에 걸어서 불러. 루트 package.json에 npm run tauri --workspace apps/cinder dev 같은 스크립트를 하나 두면 레포 어디서 쳐도 그 앱의 dev 루프가 돌아. CLI는 그 workspace 안의 src-tauri/tauri.conf.json을 알아서 찾아서 하던 대로 진행해.