pnpm install 오류 원인: pnpm-workspace.yaml 위치 문제

2026. 2. 8. 14:00Frontend

1. 문제 상황

모노레포 프로젝트에서 하위 프로젝트(client)를 생성할 때,
Next를 설치하고서 pnpm install 오류가 발생했다.

next 프로젝트 설치 pnpm 오류 스크린샷 1
pnpm install 오류 스크린샷 2

[ 디렉터리 구조 ]
apps/
├ admin/
└ client/ ⭠ 패키지 설치 오류 발생

 

2. 문제 확인

"packages field missing or empty" 검색해 본 결과,

루트 디렉터리에서 pnpm-workspace.yaml 파일이 없거나
하위 디렉터리에서 유효한 package.json을 가진 디렉터리를 하나도 찾지 못하면 오류가 발생했다.

하지만 루트 디렉터리에서 pnpm-workspace.yaml 파일은 이미 작성되어 있었다. 

루트 디렉터리 pnpm-workspace.yaml 파일 내용

3. 해결 방안 탐색

디렉터리를 살펴보던 중 이상한 파일을 찾았다.
최상단 작업공간을 정의하는 pnpm-workspace.yaml 파일이 하위 디렉터리에 존재했다.

프로젝트 디렉터리 구조

/client 디렉터리 내 pnpm-workspace.yaml 파일을 삭제해 봤다.

[ 디렉터리 구조 ]
apps/
├ admin/
└ client/
    └ pnpm-workspace.yaml ⭠ 삭제

 

4. 해결 방안 적용

pnpm install 실행했을 때 정상적으로 패키지 설치되었다.

원인은 client 디렉터리 pnpm-workspace.yaml 파일 때문이었다.

[ 삭제 이전 디렉터리 구조 ]
apps/
├ pnpm-workspace.yaml ⭠ 중복 1
├ admin/
└ client/
    └ pnpm-workspace.yaml ⭠ 중복 2 (원인)

pnpm은 pnpm-workspace.yaml 파일이 존재하는 디렉터리를 workspace 루트로 인식하는데,
client 디렉터리가 새로운 workspace 루트로 오인됐고,
해당 workspace 기준에서 유효한 패키지를 찾지 못해 오류가 발생했다.

pnpm-workspace.yaml defines the root of the workspace and
enables you to include / exclude directories from the workspace.
- pnpm 공식 문서(pnpm-workspace.yarml) 내용 일부 발췌

이미 모노레포 작업공간이 만들어져 있다면, 
하위 프로젝트 디렉터리에서는 pnpm-workspace.yaml 파일이 없어야 했다.

[ 정상 디렉터리 구조 ]
apps/
├ pnpm-workspace.yaml ⭠ 루트 한 곳에만 있도록 관리
├ admin/
└ client/