프론트엔드 배포를 Vercel과 docker 중 어떤 것으로 할지 이야기를 하다가 Vercel로 먼저 하기로 해서 진행을 해
보았다. 이 과정에서 만난 오류에 대해 이야기해보려고 한다.
배포 방법은 간단하다. 레포지토리를 선택하면 Vercel에서 자동으로 프로젝트를 감지 해준다.


Turborepo를 자동으로 인식하고 Root Directory까지 자동으로 선택해 주는 것을 볼 수 있다. 추가로 환경 변수 설정을 하고 싶다면 아래 옵션을 이용해서 추가하면 된다.

apps/www 프로젝트의 package.json에 분명 @repo/ui를 명시했는데 resolve를 할 수 없다고 나오는 것이다. 4시간 이상의 삽질을 한끝에 허무하게 해결을 했다.
마지막 에러 메시지를 보면 Error: Command “turbo run build” exited with 1라고 나와있다. 나는 build 명령어가 Root Directory로 설정한 패키지의 package.json을 기반으로 build를 하는 줄 알았다.
하지만 그게 아닌 모노레포의 Root 레벨의 package.json에서 build를 실행하는 것이었다.
{
"scripts": {
"dev": "tsup --watch",
},
}
위는 에러가 발생할 당시 @repo/ui의 package.json이다. build 명령어가 없기 때문에 당연히 Module not fonud가 발생한 것이다.
"scripts": {
"dev": "tsup --watch",
"build": "tsup"
},
위처럼 build 명령어를 추가하니 정상적으로 배포가 되는 것을 확인할 수 있었다.
에러가 발생했을 때 무작정 구글링하기보다 어떤 에러가 어떻게 났는지 먼저 봐야겠다고 느끼게 되는 트러블 슈팅이었다.