피드로 돌아가기
Dev.toDevOps
원문 읽기
pnpm self-upgrade의 No-Manifest 경계 분리를 통한 런타임 에러 해결
Scarab Field Test #021 — pnpm Self-Upgrade No-Manifest Boundary
AI 요약
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)을 훼손하는지 검토