2026. 7. 9.

Vercel에서 dist 폴더가 없다고 할 때, Output Directory부터 맞추는 순서

Vercel 배포 로그에 No Output Directory named dist가 나오면 폴더를 억지로 만들기보다, 로컬 빌드 결과·Framework Preset·Root Directory·Output Directory가 서로 맞는지 순서대로 확인해야 합니다.

4 min read
Vercel에서 dist 폴더가 없다고 할 때, Output Directory부터 맞추는 순서 대표 이미지

Vercel 배포 로그에 No Output Directory named "dist" found after the Build completed가 나오면, 초보자는 dist 폴더를 새로 만들거나 AI에게 설정 파일 전체를 다시 쓰라고 요청하기 쉽습니다. 하지만 먼저 맞춰야 할 것은 폴더를 만드는 일이 아닙니다. 로컬 build가 만든 폴더 이름과 Vercel이 배포 뒤에 찾도록 설정된 폴더 이름이 같은지입니다.

Vercel의 현재 Build 설정 문서에 따르면 Vercel은 프레임워크를 감지하면 Build Command와 Output Directory를 자동으로 설정합니다. 그래서 Next.js 프로젝트인데 dist를 강제로 지정해 두었거나, Vite 프로젝트인데 Root Directory가 한 단계 위를 가리키면 build는 끝나도 마지막 배포 단계에서 멈출 수 있습니다. 오늘은 네 칸만 맞추고, 그 다음에만 설정을 바꾸는 순서를 잡아 보겠습니다.

Vercel 배포 로그에서 dist 오류를 보고 로컬 build 결과와 Output Directory를 대조하는 개발자 작업 장면

먼저 로그의 build 성공과 출력 폴더 오류를 나눕니다

로그에 Build completed가 보인 뒤 No Output Directory named "dist"가 나왔다면, 의존성 설치나 코드 문법보다 배포할 결과물의 위치가 어긋났을 가능성을 먼저 봅니다. Vercel 공식 문서는 빌드 뒤 Output Directory의 내용만 정적으로 제공하며, 프레임워크를 감지했을 때는 그 디렉터리를 자동 구성한다고 설명합니다.

여기서 할 일은 재배포가 아니라 로컬에서 같은 build 명령을 한 번 실행하는 것입니다.

npm run build

끝난 뒤 프로젝트 루트에서 실제 결과를 확인합니다.

ls
# PowerShell에서는 Get-ChildItem

Vite 계열이라면 흔히 dist가 보이지만, Next.js 프로젝트는 .next가 보일 수 있습니다. 이 차이는 “어느 폴더가 더 좋다”는 문제가 아니라 지금 프레임워크가 실제로 만든 폴더를 Vercel이 찾고 있는가의 문제입니다.

Vercel 설정의 네 칸을 같은 화면에서 대조합니다

Vercel Project Settings의 Build and Deployment 영역에서 아래 네 값을 한 묶음으로 확인합니다.

  1. Framework Preset: Next.js, Vite 등 현재 앱과 같은지 확인합니다.
  2. Build Command: 로컬에서 통과한 명령과 같은지 봅니다.
  3. Root Directory: package.json과 앱 소스가 있는 폴더를 가리키는지 확인합니다.
  4. Output Directory: 로컬 build 뒤 실제로 생긴 결과 폴더와 맞는지 확인합니다.
Framework Preset, Build Command, Root Directory, Output Directory를 한 번에 대조하는 체크리스트

Vercel의 Root Directory 안내에 따르면 Root Directory를 지정하면 그 밖의 파일에는 접근할 수 없습니다. monorepo에서 apps/web 안에 앱이 있는데 저장소 최상단을 빌드 루트로 삼거나, 반대로 앱 루트를 두 번 중첩해 지정하면 결과 폴더를 찾는 기준도 달라집니다. 그래서 dist만 바꾸기 전에 Root Directory부터 확인해야 합니다.

Next.js와 Vite는 같은 Output Directory를 쓰지 않습니다

dist라는 이름이 오류 메시지에 나왔다고 모든 프로젝트가 dist를 만들어야 하는 것은 아닙니다. Vercel의 Project Configuration 문서는 대시보드 설정과 버전 관리되는 파일 기반 설정을 함께 설명하며, 필요할 때만 vercel.jsonoutputDirectory로 override할 수 있습니다.

프로젝트 상황먼저 볼 것섣불리 하지 말 것
Next.js 앱Framework Preset 자동 감지와 npm run build 결과실제 정적 내보내기 구조 확인 없이 dist를 고정
Vite 정적 앱build 뒤 dist 생성 여부Root Directory가 다른 앱 폴더를 가리키는 상태로 재배포 반복
HTML/CSS/JS 정적 사이트Framework Preset이 Other인지, public 또는 루트를 제공하는지빈 Build Command와 임의 Output Directory를 동시에 추측
monorepoRoot Directory 아래의 package.json과 결과 폴더저장소 전체 경로를 Output Directory에 넣기

설정 파일에도 아래처럼 값이 있을 수 있습니다.

{
  "outputDirectory": "dist"
}

이 값은 Vercel의 Output Directory를 override합니다. 따라서 AI가 추가한 vercel.json이 있거나 대시보드에서 Override를 켰다면, 두 곳 중 어디가 현재 배포에 적용되는지 먼저 확인하세요. 문제를 모르는 상태에서 dist, .next, build, out을 번갈아 넣으면 원인 증거만 더 흐려집니다.

AI에게는 설정을 고치기 전 네 줄만 보냅니다

AI에게 “Vercel 오류 고쳐줘”라고만 보내면 프레임워크 설정을 통째로 바꾸는 답을 받을 수 있습니다. 아래 네 줄을 채워 보내면 확인 범위를 build 설정으로 제한할 수 있습니다.

AI에게 Vercel Output Directory 오류를 전달할 때 필요한 네 가지 증거를 정리한 작업 화면
Vercel 오류: No Output Directory named "dist" found after the Build completed
framework preset: [Next.js / Vite / Other]
root directory: [Vercel 설정값]
local build 결과: [실제로 생긴 폴더]
configured output directory: [대시보드 또는 vercel.json 값]

코드를 새로 만들지 말고, 위 네 값이 충돌하는 한 곳과
가장 작은 수정 한 가지만 설명해 주세요.

이 프롬프트의 목적은 정답을 AI에게 맡기는 것이 아니라, 설정 변경 전에 확인 가능한 증거를 먼저 모으는 것입니다. 값이 모두 맞는데도 배포가 실패한다면, 그때 배포 로그의 첫 오류와 현재 commit을 함께 확인하세요. Vercel 배포 로그에서 실패 원인을 읽는 순서예전 화면이 보일 때 Git 브랜치부터 확인하는 순서도 다음 단계의 범위를 좁히는 데 도움이 됩니다.

오늘의 배포 전 확인 순서

  • 로컬에서 npm run build를 실행했다.
  • 실제로 생긴 결과 폴더 이름을 적었다.
  • Vercel의 Framework Preset과 Build Command를 확인했다.
  • Root Directory가 앱의 package.json을 포함하는 폴더인지 확인했다.
  • Output Directory override가 로컬 결과와 일치하는지 확인했다.
  • 그 다음에만 한 가지 설정을 바꾸고 새 배포 로그를 비교했다.

dist 오류는 폴더 하나를 억지로 추가하라는 신호가 아닙니다. 로컬 build 결과, Framework Preset, Root Directory, Output Directory가 같은 기준을 바라보도록 맞추라는 신호에 가깝습니다. 네 값 중 어긋난 한 곳만 고친 뒤 다시 배포하세요.

참고 출처

이 글은 AI 코딩과 개발 학습의 일반 정보 제공 목적입니다. 도구, 모델, 커리큘럼, 요금은 버전과 시점에 따라 달라질 수 있으므로 실습이나 도입 전 공식 문서와 최신 릴리스 노트를 확인하세요.

다음으로 읽을 기사

같은 흐름으로 이어 읽기 좋은 기사만 추려 보여줍니다.

댓글 0

이 글을 읽은 독자들의 생각을 나눠보세요.

비밀번호(선택)

첫 번째 댓글을 남겨보세요

여러분의 생각이 다른 독자에게 도움이 됩니다.