2022년 pnpm 연간 회고

연말이네요. 힘든 한 해였습니다. 아실지 모르겠지만 저는 우크라이나에 살고 있고 러시아와의 전쟁 때문에 예전보다 프로젝트의 진행이 어려웠습니다. 하지만 pnpm에게는 좋은 한 해였습니다. 신규 유저와 기여자가 많이 생겼고 훌륭한 기능들을 많이 구현할 수 있었습니다.

(위 이미지는 Midjourney에 의해 생성되었습니다. 호랑이는 호랑이의 해를 의미합니다)

사용#

다운로드 통계#

올해 내 목표는 다운로드 수로 Lerna를 이기는 것이 었습니다. 우리는 8월에 이 목표를 달성할 수 있었습니다.

pnpm은 2021년보다 2022년에 5배 더 많이 다운로드되었습니다:

문서 방문#

Google Analytics를 사용하여 문서에서 개인화되지 않은 통계를 수집합니다. 2022년에는 일주일에 순 방문자 수가 20,000명이 넘을 때도 있었습니다. 이는 2021년에 비해 10배나 증가한 수치입니다!

깃허브 스타#

올해 우리의 메인 GitHub 리포지토리는 거의 +7,000개의 별을 받았습니다.

기여자#

올해에는 새롭고 활발한 기여자들이 많이 참여했습니다. 이들은 2022년에 최소 하나의 PR을 병합한 사람들입니다:

주요 기능#

심볼릭 링크 없는 호이스트된 node_modules 지원(v6.25.0부터)#

2022년 초에 "전통적인" 호이스트(일명 플랫 node_modules)에 대한 지원을 추가했습니다. Yarn의 호이스팅 알고리즘을 사용하여 적절하게 호이스팅된 node_modules를 생성합니다. 이 새로운 설정 덕분에 pnpm은 사실상 npm CLI와 호환되는 모든 Node.js 스택과 호환됩니다.

호이스트된 node_modules 디렉터리 구조를 사용하려면 .npmrc 파일에서 node-linker=hoisted 설정을 사용해야 합니다.

부수 효과 캐시(v7.0.0 이후)#

이제 v7부터는 side-effect-cache가 기본적으로 활성화되어 있으므로, 빌드가 필요한 종속성은 머신에서 한 번만 빌드됩니다. 이렇게 하면 빌드 스크립트가 있는 종속성을 가진 프로젝트에서 설치 속도가 크게 향상됩니다.

종속성 패치(v7.4.0 이후)#

pnpm patch 명령이 추가되어 node_modules의 종속성을 패치할 수 있습니다.

시간 기반 해석 전략(v7.10.0 이후)#

종속성 업데이트가 더 안전하게 이루어질 수 있도록 pnpm에 새로운 해석 모드가 추가되었습니다. 해석 모드는 resolution-mode 설정으로 변경할 수 있습니다.

종속성 라이선스 목록 보기(v7.17.0 이후)#

이제 pnpm licenses list 명령어를 사용하여 설치된 패키지의 라이선스를 확인할 수 있습니다.