pnpm self-update

최신 버전 또는 지정된 버전으로 pnpm을 업데이트합니다.

pnpm self-update [<version>]

사용 예:

pnpm self-update
pnpm self-update 10
pnpm self-update next-10
pnpm self-update 10.6.5

동작#

프로젝트 컨텍스트에 따라 pnpm self-update의 동작이 달라집니다:

프로젝트에서 pnpm 버전을 고정한 경우#

프로젝트의 package.json에 pnpm으로 설정된 packageManager 필드(또는 pnpm에 대한 devEngines.packageManager 항목)가 있는 경우, self-update는 package.json에 고정된 버전만 확인된 버전으로 업데이트합니다. 전역으로 pnpm을 설치하지는 않습니다. 다음에 pnpm 명령을 실행하면 pnpm이 지정된 버전을 자동으로 다운로드하고 해당 버전으로 전환합니다.

프로젝트 외부(또는 pnpm 고정이 무시되는 경우)#

프로젝트가 pnpm을 고정하지 않았거나 pmOnFail: ignore를 통해 고정이 무시되는 경우, self-update는 확인된 pnpm 버전을 전역으로 설치하고 PNPM_HOME에 링크하여 시스템에서 활성 pnpm 바이너리가 되도록 합니다.

프로젝트 설정은 무시됩니다#

버전 v11.18.0부터 pnpm self-update는 실행되는 프로젝트로부터 어떠한 지시도 받지 않습니다:

  • pnpm은 pnpm 버전을 전환할 때 사용되는 것과 동일한 신뢰할 수 있는 레지스트리 및 인증 구성을 통해 가져오므로, 프로젝트의 .npmrc 또는 pnpm-workspace.yaml이 다운로드를 다른 곳으로 리디렉션하거나 자격 증명을 첨부할 수 없으며, 프로젝트의 기본 .pnpmfile.(c|m)js도 로드되지 않습니다. 신뢰할 수 있는 소스의 Pnpmfile(pnpmfile 설정, 전역 pnpmfile, 구성 종속성)은 계속 적용됩니다.
  • 프로젝트의 minimumReleaseAge, trustPolicy, ci 설정은 self-update에 영향을 주지 않습니다. 이 설정들은 여전히 프로젝트 자체의 종속성에는 적용됩니다; self-update의 경우 이 값들은 내장 기본값, 전역 구성, PNPM_CONFIG_* 환경 변수 또는 명령줄 플래그에서 가져옵니다. 이를 통해 저장소가 릴리스 경과 기간 대기를 면제하거나 이를 높여 오래된 pnpm에 머물게 하는 것을 막고, pnpm 다운로드를 보호하는 신뢰 검사를 약화시키는 것도 방지합니다.

self-update가 minimumReleaseAge 기준보다 최신인 버전을 거부하면, 대화형 실행에서는 그래도 업데이트할지 묻습니다; 비대화형 실행은 여전히 실패합니다. CI는 TTY를 연결하는 러너에서도 절대 프롬프트를 표시하지 않습니다.

Rust 포팅 버전(pnpm v12) 설치#

버전 v11.10.0부터 pnpm self-update(및 packageManager 버전 전환 기능)으로 Rust 포팅 버전인 pnpm v12를 설치하고 링크할 수 있습니다. 이 버전은 next-12 dist-tag에서 pnpm과 @pnpm/exe 두 이름으로 모두 게시됩니다:

pnpm self-update next-12

v12는 네이티브 바이너리를 @pnpm/exe.<platform>-<arch> 패키지로 제공하며, pnpm의 내장 설치 프로그램이 이를 직접 링크합니다. Node.js 런처가 없으므로 명령 실행 시 Node.js 시작 비용이 발생하지 않습니다. 버전 v12부터는 SEA @pnpm/exe 빌드에서 업데이트하는 경우에도 설치가 스코프가 없는 pnpm 패키지(Rust 실행 파일)로 수렴합니다.