watch
코드 변경 사항을 기반으로 저장소의 태스크를 재실행합니다.
turbo watch는 의존성을 인식하므로 turbo.json에 구성된 순서대로 태스크가 재실행됩니다.
태스크가 제공되지 않으면 turbo는 저장소의 패키지에 사용 가능한 태스크를 표시합니다.
persistent 태스크와 함께 turbo watch 사용하기
Persistent 태스크는 "persistent": true로 표시되어 종료되지 않습니다. 따라서 태스크 그래프에서 의존될 수 없습니다.
이는 turbo watch를 사용할 때 persistent 태스크가 무시되어 turbo run과 동일한 방식으로 작동하며, persistent 태스크와 non-persistent 태스크를 동시에 실행할 수 있음을 의미합니다.
의존성을 인식하는 persistent 태스크
스크립트에 의존성의 변경 사항을 감지할 수 있는 내장 watcher(next dev와 같은)가 있는 경우 turbo watch를 사용할 필요가 없습니다. 대신 스크립트의 내장 watcher를 사용하고 "persistent": true를 사용하여 태스크를 장기 실행으로 표시하세요.
의존성을 인식하지 않는 persistent 태스크
일부 도구는 모노레포 친화적이지 않으며 의존성의 모듈을 핫 리로드하지 않습니다. 이러한 경우 태스크를 interruptible: true로 표시하여 turbo watch가 관련 변경 사항이 감지될 때 태스크를 재시작하도록 해야 합니다.
제한 사항
캐싱
Watch Mode에서 태스크 캐싱은 현재 --experimental-write-cache 플래그에서 실험적입니다.
태스크 출력
소스 제어에 체크인된 파일에 쓰는 태스크가 있는 경우 Watch Mode가 무한 루프에서 실행될 가능성이 있습니다. 이는 Watch Mode가 파일의 변경 사항을 감시하고 변경된 패키지의 태스크를 재실행하기 때문입니다. 태스크가 변경 사항을 생성하면 해당 태스크가 다시 트리거됩니다.
Watch Mode에는 파일 해시를 사용하여 이런 일이 발생하지 않도록 하는 로직이 있지만 완벽하지는 않습니다. 이 문제를 피하기 위해 git에서 태스크 출력을 제거하는 것을 권장합니다.