문제상황

Nexts.js + Tailwind CSS 프로젝트를 Vercel을 통해 배포할 때, 로컬 환경과 development 환경에서는 정상으로 빌드되지만, production 모드에서만 빌드에러가 발생했습니다.

Error: Cannot find module ‘@tailwindcss/postcss’   

image

해결 과정

처음에는 코드 상에 문제가 있을 것이라 생각되어 많은 삽질을 했습니다..

1. yarn.lock 재설치

먼저는 yarn.lock 삭제 후 재설치를 해보았지만 동일한 오류가 계속되었습니다.

2. postcss.config.mjs 삭제

프로젝트 내에 postcss.config.js와 postcss.config.mjs 두 가지를 쓰고있어 mjs 파일 하나를 삭제해보았습니다.

그럼에도 불구하고 동일한 오류가 계속되었습니다.

3. 최종 해결: Yarn 기본 동작 설정

여기저기 찾아보니 Yarn은 NODE_ENV=production 일 때, 불필요한 용량과 보안 위험을 줄이기 위해 devDependencies를 설치하지 않는다는 것을 알게되었습니다.

postcss 관련 모듈은 전부 devDependencies에 설치 되어있었기 때문에 당연히 프로덕션 모드에서는 설치되지 않아 해당 모듈을 찾을 수 없던 것이였습니다.

따라서 아래와 같이 Vercel에서 yarn install을 진행할때 devDependencies도 함께 설치하도록 수정했습니다.

  • 기존

image

  • 수정 후

image

Install Command를 수정 후 다시 재배포를 진행하면 정상적으로 배포되는 모습을 볼 수 있습니다.

yarn install --production=false