pnpm 11.10
pnpm 11.10은 CI 친화적인 레지스트리 인증을 위한 _auth 설정, 새로운 pnpm prefix 및 pnpm issues 명령, 그리고 pnpm self-update로 pnpm v12 (Rust 포트)를 설치하는 기능을 추가합니다. 또한 pnpm up의 정확도를 개선하고, 축약 메타데이터를 무시하는 레지스트리에 대한 해석 속도를 높이며, 전역 패키지 관리, pnpm deploy, pnpm pack-app을 강화합니다.
pnpm 11.9
pnpm 11.9에서는 체크섬을 게시할 수 없는 레지스트리에 대해 누락된 tarball integrity를 계산하고, pnpm sbom --exclude-peers를 추가하며, 순환 lockfile에서 감사 성능을 개선하고, 피어 해석의 비결정성을 수정하며, minimumReleaseAge 및 trustPolicy의 제외 처리를 강화합니다.
pnpm 11.8
pnpm 11.8에서는 설치 시험 실행 미리보기, Node.js 패키지 맵 생성, 더 풍부한 SBOM 출력, 현재 패키지를 기본값으로 사용하는 pnpm view, 그리고 올바른 pnpm run --no-bail 종료 코드가 추가되었습니다. 또한 구성 종속성 lockfile 경로 탐색 수정과 여러 설치/업데이트 결정성 수정이 포함됩니다.
pnpm 11.7
pnpm 11.7에서는 읽기 전용 패키지 스토어를 대상으로 설치하기 위한 frozenStore 설정, 전체 워크스페이스를 하나의 요청으로 게시하는 --batch 플래그, 스코프별 인증 토큰, 그리고 pacquet에 위임되는 전체 해석 설치가 추가되었습니다. 또한 lockfile 별칭 처리를 강화하고, 여러 설치 경로를 결정적으로 만들며, 여러 게시 및 Windows 관련 수정 사항이 포함됩니다.
pnpm 11.6
pnpm 11.6에서는 npm_config_//… 및 pnpm_config_//… 환경 변수를 통해 파일 없이 레지스트리 인증을 제공하는 방법이 추가되고, 기본 네트워크 동시성이 높아지며, pnpm-lock.yaml만 없는 경우 전체 재해석을 건너뜁니다. 또한 선택적 종속성의 플랫폼 필드를 추론하여 다른 플랫폼용 바이너리가 다운로드되지 않도록 합니다.
저장소의 .npmrc에서 pnpm이 더 이상 환경 변수를 확장하지 않는 이유
pnpm은 이전에 ${ENV_VAR} 플레이스홀더를 발견하는 모든 곳에서 확장했습니다 — 방금 클론한 저장소 안에 있는 .npmrc 및 pnpm-workspace.yaml 파일도 포함해서 말입니다. 이는 악의적인 저장소가 사용자 환경의 비밀 정보를 탈취하는 수단이 될 수 있는 것으로 드러났습니다. 버전 v10.34.2 및 v11.5.3부터 pnpm은 저장소가 제어하는 레지스트리 및 자격 증명 설정에서 환경 변수를 확장하지 않습니다.
이는 보안 수정(GHSA-3qhv-2rgh-x77r)이며, 일부 설정에서는 호환성이 깨지는 변경입니다. 이 글에서는 공격 방식, 정확히 무엇이 변경되었는지, 그리고 마이그레이션 방법을 설명합니다.
pnpm 11.5
pnpm 11.5에서는 nodeLinker: hoisted 설치에서 종속성이 얼마나 멀리 호이스팅될지 제어하는 hoistingLimits 설정이 추가되고, 긴 선택 목록의 스크롤 문제를 해결하기 위해 대화형 프롬프트 라이브러리가 교체되며, 신뢰 등급에서 단계적 게시를 인식하고, 여러 설치 및 dist-tag 수정 사항이 포함됩니다.
pnpm 11.4
pnpm 11.4에서는 lockfile integrity, 자격 증명 범위, git 해석, 패치 파일, 종속성 별칭과 관련된 일련의 공급망 보안 허점을 해결하고, tarball integrity 불일치를 기본적으로 설치 실패로 처리하며(한정된 용도의 --update-checksums 옵트인 제공), pnpm runtime set이 기본적으로 engines.runtime 대신 devEngines.runtime에 기록하도록 변경합니다.
pnpm 11.3
pnpm 11.3에서는 npm의 단계적 게시 지원(pnpm stage), 이미 신뢰된 lockfile에 대해 공급망 검증을 건너뛰는 새로운 trustLockfile 설정, 그리고 pnpm pkg, pnpm repo, pnpm set-script의 네이티브 구현이 추가되었습니다. 또한 pack / publish용 --skip-manifest-obfuscation 플래그를 추가하고, 대규모 워크스페이스에서 minimumReleaseAge / trustPolicy 검증의 메모리 사용량을 줄였습니다.
pnpm 11.2
pnpm 11.2에서는 설치 백엔드로 pacquet(pnpm의 Rust 포팅)을 실험적으로 선택해 사용할 수 있게 되었고, 구성 종속성이 한 단계의 optionalDependencies를 설치하도록 확장되었으며(따라서 esbuild/swc의 플랫폼 바이너리 패턴이 구성 종속성에서도 작동합니다), 오랫동안 문서화되어 있던 pnpm login --scope 플래그가 연결되었고, pnpm outdated 및 pnpm update --interactive에 런타임 항목(Node.js, Deno, Bun)이 표시됩니다.