피드로 돌아가기
Scarab Field Test #021 — pnpm Self-Upgrade No-Manifest Boundary
Dev.toDev.to
DevOps

pnpm self-upgrade의 No-Manifest 경계 분리를 통한 런타임 에러 해결

Scarab Field Test #021 — pnpm Self-Upgrade No-Manifest Boundary

Scarab Systems2026년 6월 10일5intermediate

Context

프로젝트 디렉토리 외부에서 pnpm self-upgrade 실행 시 ERR_PNPM_NO_PKG_MANIFEST 에러가 발생하는 구조적 결함 발견. Dependency status 확인 불가 시 무조건적으로 auto-install 경로로 진입하여 프로젝트 Manifest 존재를 강제하는 잘못된 소유권 경계 설정이 원인.

Technical Solution

  • runDepsStatusCheck.ts 내 기존의 단순 truthy 체크 로직을 명시적 조건 분기로 대체
  • no-manifest 상태이며 non-recursive 실행인 경우를 식별하여 auto-install 진입 전 조기 반환 처리
  • Root project manifest가 존재하는 경우의 undefined 상태는 기존처럼 auto-install 경로를 유지하도록 설계
  • 단순 'Manifest 무시'가 아닌 'Dependency status 부재의 원인'에 따른 실행 경로 차별화 구현
  • 과도한 Guard Clause 적용으로 인한 Command Contract 약화를 방지하기 위해 정밀한 조건식 적용

1. 전역 명령어 실행 시 로컬 프로젝트 전제 조건이 상속되고 있지 않은지 확인

2. '상태 없음(undefined)'을 단순 오류로 처리하지 말고 상황별(정상적인 부재 vs 비정상적 누락)로 구분하여 처리

3. 예외 처리 시 범위가 너무 넓은 Guard Clause가 시스템의 기존 계약(Contract)을 훼손하는지 검토

원문 읽기