Debugging/2026.04.30/6 min read

Vercel 빌드에서 next: command not found가 났을 때

GitHub 연동 배포 첫 시도에서 Next.js 실행 파일을 찾지 못해 실패했던 원인과, 프로젝트 설정을 다시 잡은 과정을 정리했습니다.

VercelBuildNext.js

Code notes

코드에서 확인한 구현 포인트

배포 기준 2026.04.30

관련 파일

apps/web/package.jsonapps/web/next.config.tsVercel Build and Deployment Settings

구현 메모

빌드 로그에서 npm run build가 어떤 위치에서 실행되는지 먼저 확인했다.

웹 앱이 apps/web 아래에 있으므로 Vercel Root Directory를 앱 위치에 맞춰 저장했다.

next 명령이 없다는 메시지는 코드 문제보다 의존성 설치 위치 문제일 수 있다고 기록했다.

처음 본 에러

GitHub 저장소를 Vercel에 연결하고 첫 배포를 돌렸을 때, 빌드 로그에는 next 명령을 찾을 수 없다는 메시지가 나왔다. 코드가 크게 잘못된 것처럼 보였지만, 실제 원인은 앱 위치와 설치 위치를 Vercel이 제대로 이해하지 못한 데 가까웠다.

Tangly는 루트에 모바일과 웹이 같이 있는 구조다. 웹 앱은 apps/web 아래에 있고, 실제 Next.js 의존성도 그쪽 package.json 안에서 관리된다. 그런데 Vercel이 루트를 기준으로 빌드를 해버리면 next 실행 파일을 못 찾을 수 있다.

확인한 순서

먼저 빌드 로그에서 어떤 명령이 실행되는지 봤다. npm run build가 어디에서 실행되고, 그 안에서 어떤 스크립트가 호출되는지가 중요했다.

그다음 Vercel 프로젝트의 Root Directory를 apps/web으로 맞췄다. 이 설정이 맞아야 Vercel이 웹 앱의 package.json, dependencies, next.config를 기준으로 설치와 빌드를 진행한다.

마지막으로 Framework Preset과 Build Command가 과하게 꼬이지 않았는지 확인했다. 자동 감지가 어긋난 상태에서는 필요한 값만 명시적으로 저장하고 다시 배포했다.

남긴 교훈

모노레포에서는 에러 메시지가 코드 문제처럼 보여도 실제로는 작업 디렉터리 문제일 수 있다. 특히 command not found류 에러는 의존성이 없는 것이 아니라, 의존성이 있는 위치에서 명령을 실행하지 않은 경우가 많다.

앞으로 배포 문제가 생기면 먼저 로그의 현재 위치, 설치 위치, 실행 명령을 확인하기로 했다. 이 세 가지를 보면 꽤 많은 배포 실패를 빠르게 좁힐 수 있다.

Keep reading

다른 글 이어서 보기

전체 글 보기