패키지 타입
Turborepo에서는 두 가지 타입의 패키지를 다룹니다:
애플리케이션 패키지
애플리케이션 패키지는 워크스페이스에서 배포될 패키지입니다. 애플리케이션 패키지의 예로는 일반적으로 ./apps 디렉토리에 위치하는 Next.js, Svelte, Vite 또는 CLI 애플리케이션이 있습니다.
애플리케이션 패키지는 패키지 그래프의 "종단"이 되어 리포지토리의 다른 패키지에 설치되지 않는 것이 모범 사례입니다. CI/CD 파이프라인은 대부분 패키지 및 태스크 그래프의 이러한 노드에서 완료됩니다.
다른 패키지에 애플리케이션 패키지 설치하기
드문 경우지만 애플리케이션 패키지를 다른 패키지에 설치해야 할 수 있습니다. 이는 예외적인 경우여야 합니다. 이러한 작업을 자주 수행하게 된다면 패키지 구조를 재고해야 할 수 있습니다.
이 규칙의 예외 사례로는 애플리케이션 패키지를 엔드투엔드 테스트를 처리하는 패키지에 설치하는 경우가 있습니다. 설치하고 나면 엔드투엔드 테스팅 패키지에서 애플리케이션 패키지에 의존하여 애플리케이션의 재배포를 인지할 수 있습니다.
라이브러리 패키지
라이브러리 패키지는 워크스페이스 내에서 공유하려는 코드를 포함합니다. 이들은 독립적으로 배포할 수 없으며, 대신 리포지토리에서 최종 배포 가능한 결과물을 생성하기 위해 애플리케이션 패키지를 지원합니다. 이러한 패키지를 내부 패키지라고도 하며, 이들은 고유한 하위 타입을 가지고 있습니다.