TechFeedTechFeed
Next.js빌드

Module not found: Can't resolve — 모듈 경로 해석 실패

Module not found: Can't resolve '<module>'
한 줄 해결: 번들러가 import 한 경로를 찾지 못한 것으로, 패키지 미설치·경로 오타·대소문자 불일치가 3대 원인입니다.

이런 증상일 때

next build/dev 또는 webpack/Vite 빌드에서 "Module not found: Can't resolve" 와 함께 찾지 못한 경로가 출력됩니다.

원인

  • import 한 패키지를 설치하지 않음(또는 dependencies 가 아닌 곳에 설치)
  • 상대경로 오타 또는 잘못된 alias(@/…) 설정
  • 파일명 대소문자 불일치 — 로컬(macOS)은 통과하지만 Vercel(Linux)에서 실패

해결 방법

1
패키지 설치 확인

해당 모듈이 node_modules 에 있는지, package.json dependencies 에 있는지 확인하고 없으면 설치합니다.

npm install <module>
2
경로·alias 점검

상대경로 철자와, tsconfig/jsconfig 의 paths alias 가 next.config 와 일치하는지 확인합니다.

// tsconfig.json
"paths": { "@/*": ["./src/*"] }
3
대소문자 통일

import 경로와 실제 파일명의 대소문자를 정확히 맞춥니다. Linux 빌드는 대소문자를 구분합니다.

git mv Components/Card.js components/Card.js
💡 예방: macOS/Windows 는 대소문자를 구분하지 않아 로컬에서만 통과하는 함정이 있습니다. import 경로 대소문자를 파일명과 정확히 맞추세요.
webpackNext.jsModule not foundimportalias

관련 에러

관련 가이드

하이드레이션 미스매치, Hydration failed, 서버 클라이언트 불일치 | 콘솔에 빨간 줄이 뜨면 뭐부터 볼까?EADDRINUSE, 포트 이미 사용 중, 프로세스 종료 | 3000번이 안 죽으면 뭐부터 볼까?npm ERESOLVE, 피어 의존성 충돌, legacy-peer-deps, overrides | 설치가 멈추면 뭐부터 볼까?CORS 에러, 프리플라이트, Access-Control-Allow-Origin | 로컬은 되는데 배포하면 막히면?