본문으로 건너뛰기

pnpm의 2021년

· 1분 소요

올해의 끝자락이고 pnpm에게는 좋은 한 해였습니다. 그러니, 어떻게 되었는지 봅시다.

사용량

다운로드 통계

올해 저의 목표는 다운로드 수에서 Bower를 이기는 것이 었습니다. 우리는 11월에 그 목표를 달성할 수 있었습니다.

pnpm은 2020년에 비해 2021년에는 약 3배 더 많이 다운로드되었습니다.

:::참고

이 통계는 pnpm이 설치될 수 있는 모든 다양한 방법을 측정하지도 않습니다! 그들은 단지 pnpm npm 패키지의 다운로드만 측정합니다. 올해 우리는 또한 pnpm의 컴파일 된 바이너리 버전을 추가하며 이는 다른식으로 출하됩니다.

:::

문서 방문

Google Analytics를 사용하여 문서에서 개인화되지 않은 통계를 수집합니다. 2021년에는 때때로 일주일에 2,000명 이상의 고유 방문자가 있었습니다.

대부분의 사용자는 미국과 중국 출신입니다.

깃허브 스타

주요 GitHub 저장소는 올해 +5,000개의 별을 받았습니다.

신규 사용자

Our biggest new user this year is Bytedance (the company behind TikTok).

또한 많은 훌륭한 오픈 소스 프로젝트에서 pnpm을 사용하기 시작했습니다. 일부는 모노레포에 대한 뛰어난 지원 때문에 pnpm으로 전환했습니다.

일부는 pnpm이 얼마나 효율적이고 빠르며 아름다운지를 좋아하기 때문에 전환했습니다.

주요 기능

새로운 locfile 형식 (v6.0.0 이후)

올해 처음이자 가장 중요한 변경 사항 중 하나는 새로운 pnpm-lock.yaml 형식입니다. 이것은 브레이킹 체인지였기 때문에 v6을 출시해야 했습니다. 그러나 그것은 성공적이었습니다. 이전 lockfile은 Git 충돌을 자주 일으켰습니다. 새로운 형식이 도입된 이후로 Git 충돌에 대한 불만은 접수되지 않았습니다.

Node.js 버전 관리 (v6.12.0 이후)

Node.js 버전을 관리할 수 있는 새로운 명령어 (pnpm env)를 출하했습니다. 따라서 nvm 또는 Volta와 같은 Node.js 버전 관리자 대신 pnpm을 사용할 수 있습니다.

또한 pnpm은 독립 실행형 실행 파일로 제공되므로 시스템에 Node.js가 사전 설치되어 있지 않아도 실행할 수 있습니다.

로컬 의존성 주입 (v6.20.0 이후)

여러분은 로컬 의존성을 "주입"할 수 있습니다. 기본적으로 로컬 의존성은 node_modules에 심볼릭 링크되지만 이 새로운 기능을 사용하면 pnpm에 패키지 파일을 하드 링크하도록 지시할 수 있습니다.

피어 의존성 문제에 대한 보고 기능 개선 (v6.24.0 이후)

피어 의존성 문제는 일반 텍스트로 출력되어 이해하기 어려웠습니다. 이제 모두 그룹화되어 멋진 계층 구조로 출력됩니다.

경쟁

Yarn

Yarn은 v3.1에서 pnpm 링커를 추가했습니다. 따라서 Yarn은 pnpm이 생성하는 것과 유사한 노드 모듈 디렉토리 구조를 생성할 수 있습니다.

또한 Yarn 팀은 디스크 공간 효율성을 높이기 위해 콘텐츠 주소 지정 가능 스토리지를 구현할 계획입니다.

npm

npm 팀은 pnpm이 사용하는 심볼릭 링크된 node-modules 디렉토리 구조 (RFC와 관련된)도 채택하기로 결정했습니다.

기타

Zig로 작성된 Bun과 Rust로 작성된 Volt 모두 npm/Yarn/pnpm보다 빠르다고 주장합니다. 이 새로운 패키지 관리자를 아직 벤치마킹하지 않았습니다.

향후 계획

더 빠르고, 더 좋고, 최고가 될 것 입니다.