Pnpm 성능과 디스크 효율성 NPM은 여전히 Yarn과 PNPM에 비해 약간 더 느립니다. Yarn은 동일한 평면화된 node_modules 디렉토리를 사용하지만 NPM과 비교할 만한 속도를 보이며 패키지를 병렬로 설치합니다.
반면에 pnpm은 pnm보다 3배 더 빠르고 효율적입니다.
콜드 캐시와 핫 캐시 모두에서 PNPM이 Yarn보다 빠릅니다. PNPM은 글로벌 저장소에서 단순히 파일을 링크하는 반면, yarn은 캐시에서 파일을 복사합니다. 패키지 버전은 디스크에 한 번만 저장됩니다.
PNPM은 의존성 트리를 평면화하지 않고 이 문제를 해결했습니다. 각 패키지의 의존성은 node_modules 폴더에 그룹화되었고 심링크를 사용하여 의존성들을 함께 그룹화했기 때문에 디렉토리 트리가 평면화되었습니다.
pnpm을 사용하여 의존성을 설치하면 package.json 파일이 생성되고, node_modules 폴더도 생성되지만 콘텐츠 주소 지정 저장소 접근방식 때문에 npm과 yarn과는 완전히 다른 구조를 가집니다.
Pnpm은 기존 npm 기능을 기반으로 많은 개선을 이루었습니다. pnpm은 npm의 약점을 제거하면서 모든 장점을 채택하여, pnpm을 두 가지의 장점을 모두 가진 최고의 도구로 만들었습니다.
npm와 yarn을 비교하는 것은 큰 의미가 없다.
npm과 yarn classic 공통의 문제점은 평면화된 node_modules 구조를 생성한다는 것에서 발생되는 문제이다. 이러한 문제로 인해서 두 패키지 모두 유령 의존성 문제, 비효율적인 디스크 공간 사용, pnpm에 비해 느린 설치 속도를 갖고 있을 수 밖에 없다.
그렇기 때문에 오늘 날 새로운 패키지를 사용한다고 할 경우 yarn berry + PnP 의 조합을 사용할 것인지 pnpm 을 사용할 것인지에 대해서 프로젝트의 요구사항등에 맞춰서 선택하여 사용하는 것이 더 권장되는 방식일 것이다.