2026. 2. 8. 14:00ㆍFrontend
1. 문제 상황
모노레포 프로젝트에서 하위 프로젝트(client)를 생성할 때,
Next를 설치하고서 pnpm install 오류가 발생했다.


[ 디렉터리 구조 ]
apps/
├ admin/
└ client/ ⭠ 패키지 설치 오류 발생
2. 문제 확인
"packages field missing or empty" 검색해 본 결과,
루트 디렉터리에서 pnpm-workspace.yaml 파일이 없거나
하위 디렉터리에서 유효한 package.json을 가진 디렉터리를 하나도 찾지 못하면 오류가 발생했다.
하지만 루트 디렉터리에서 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/
'Frontend' 카테고리의 다른 글
| React Native 이미지 동적 호출 안 되는 이유 (0) | 2026.02.19 |
|---|---|
| React Invalid Hook Call 해결 : pnpm Monorepo에서 React 중복 원인 (0) | 2026.02.19 |
| Override 기능으로 개발자 도구 감지 우회하기 (0) | 2026.01.13 |
| 2026 그룹바이 스타트업 채용 박람회에서 여러 기업과 커피챗한 후기 (0) | 2026.01.13 |
| 프리티어 Supabase 프로젝트, 자동으로 살려두는 방법 (0) | 2026.01.04 |