pnpm store
패키지 스토어를 관리합니다.
Commands#
status#
스토어에서 수정된 패키지를 확인합니다.
패키지의 내용이 언팩킹한 시점과 동일하다면 종료 코드 0를 반환합니다.
add#
기능적으로 pnpm add와 동일하지만, 스토어 외부의 프로젝트나 파일을 수정하지 않고 새 패키지를 스토어에 직접 추가한다는 점이 다릅니다.
prune#
스토어에서 _참조되지 않는 패키지_를 제거합니다.
참조되지 않은 패키지는 시스템 상에서 어떤 프로젝트도 사용되지 않는 패키지를 말합니다. 패키지는 대부분의 설치 작업 후에 참조되지 않을 수 있습니다. 예를 들어, 의존성이 중복되는 경우가 있습니다.
예를 들어, pnpm install 중에 패키지 foo@1.0.0이 foo@1.0.1로 업데이트되었다고 가정합니다. pnpm은 패키지를 자동으로 제거하지 않으므로 foo@1.0.0을 스토어에 유지합니다. 패키지 foo@1.0.0을 시스템의 다른 프로젝트에서 사용하지 않으면, 이 패키지는 참조되지 않는 상태가 됩니다. 이때 pnpm store prune을 실행하면 스토어에서 foo@1.0.0이 제거됩니다.
pnpm store prune 실행은 해롭지 않으며 프로젝트에 부작용이 없습니다. 만약 향후 설치에서 제거된 패키지가 필요하다면, pnpm은 다시 다운로드를 합니다.
스토어를 정리하기 위해 가끔 pnpm store prune을 실행하는 것이 좋지만, 너무 자주 실행하지는 마세요. 때때로, 미참조 패키지가 필요하게 됩니다. 브랜치를 전환하거나, 오래된 의존성을 설치할 때 이런 일이 발생할 수 있습니다. 이때 pnpm은 제거된 모든 패키지를 다시 다운로드해야 하므로, 설치 프로세스가 잠시 느려질 수 있습니다.
정리 후 pnpm은 제거된 파일의 전체 크기를 표시합니다.
global virtual store가 활성화된 경우, pnpm store prune은 전역 가상 스토어의 links/ 디렉터리에 대해 mark-and-sweep 가비지 컬렉션도 수행합니다. 스토어를 사용하는 프로젝트는 {storeDir}/v11/projects/의 심볼릭 링크를 통해 등록되므로, pnpm이 활성 사용 여부를 추적하고 전역 가상 스토어에서 사용되지 않는 패키지를 안전하게 제거할 수 있습니다.
path#
활성 저장소 디렉토리에 대한 경로를 반환합니다.