prune
대상 패키지에 대한 부분 모노레포를 생성합니다. 출력은 다음을 포함하는 out이라는 디렉토리에 배치됩니다:
- 대상을 빌드하는 데 필요한 모든 내부 패키지의 전체 소스 코드.
- 대상을 빌드하는 데 필요한 원본 lockfile의 하위 집합을 포함하는 정리된 lockfile.
- 루트
package.json의 복사본.
예제
다음 구조의 저장소로 시작합니다:
package.json
pnpm-lock.yaml
turbo prune frontend를 실행하여 out 디렉토리에 frontend 애플리케이션에 대한 정리된 워크스페이스를 생성합니다:
package.json
pnpm-lock.yaml (partial)
옵션
--docker
기본값: false.
Docker 모범 사례 및 레이어 캐싱과 함께 사용하기 쉽도록 출력 디렉토리를 변경합니다. 디렉토리에는 다음이 포함됩니다:
- 정리된 워크스페이스의
package.json파일이 있는json이라는 폴더. - 대상을 빌드하는 데 필요한 내부 패키지의 정리된 워크스페이스 전체 소스 코드가 있는
full이라는 폴더. - 대상을 빌드하는 데 필요한 원본 lockfile의 하위 집합을 포함하는 정리된 lockfile.
위의 동일한 예제를 사용하여 turbo prune frontend --docker를 실행하면 다음이 생성됩니다:
pnpm-lock.yaml (partial)
package.json (from repo root)
package.json (from repo root)
package.json
package.json
package.json
--out-dir <path>
기본값: ./out.
정리된 출력이 생성되는 디렉토리를 사용자 정의합니다.
--use-gitignore[=<bool>]
기본값: true
출력 디렉토리로 파일을 복사할 때 .gitignore 파일을 준수합니다.
pnpm deploy와의 비교
turbo prune와 pnpm deploy 모두 모노레포의 패키지를 격리하는 데 사용되지만 서로 다른 목적을 제공하고 다른 출력을 생성합니다.
turbo prune이 부분 모노레포를 생성하는 반면, pnpm deploy는 대상 패키지의 내용만 포함하는 디렉토리를 생성합니다.
pnpm deploy가 생성한 디렉토리에는 하드 링크된 내부 의존성이 있는 자체 포함된 node_modules가 있습니다.
이로 인해 서버에 직접 복사하여 추가 단계 없이 사용할 수 있는 이식 가능한 패키지가 생성됩니다.
저장소 구조는 유지되지 않는데, 이는 독립 실행형 배포 가능 패키지를 생성하는 데 중점을 두기 때문입니다.