기존의 NestJs + TypeORM 조합에서 NestJs + Prisma 도입을 위해 MVP 프로젝트에 적용하는 과정에서 위처럼 원격 환경에 배포시 빌드 과정에서 TS 컴파일 관련 에러가 발생하면서 node_modules 내부에 위치한 prisma client에 Schema Property가 없다는 에러가 발생하였다.
해당 에러가 로컬 환경의 빌드에서는 발생되지 않고, 해당 원격 환경에서 빌드시 발생하고 있었는데 해당 에러와 관련된 스택 오버플로우, 깃헙 이슈를 찾아보면 하나같이 "IDE를 재시작해라"와 같은 로컬 환경에서의 이슈에 대한 답변만 존재하였다.
현재 사용하고 있던 배포 플로우는 다음과 같았다.
원격 저장소의 지정된 브랜치에서 git pull
yarn install
rimraf로 기존 dist 디렉토리(빌드된 js 파일들이 위치한 디렉토리) 삭제
yarn run build로 서버 빌드
pm2 restart all로 서버 재시작
해당 배포 플로우로 서버 배포시, 4번째 단계에서 TS 컴파일 에러가 발생하고 있는데 yarn install 시에 prisma가 schema.prisma의 스키마의 일부를 읽지 못해 node_modules 내부의 prisma-client에 정상적으로 property가 세팅되지 않은 것으로 보여 기존의 배포 플로우의 3번째와 4번째 사이에 npx prisma generate를 실행시켜 node_modules 내부에 prisma-client를 생성하도록 수정하였다.
$ npx prisma generate 스크립트 실행을 배포 플로우에 추가한 이후 원격 환경에서도 정상적으로 배포됨을 확인할 수 있었다.
[Prisma] TS2339: Property does not exist on type 배포 실패
기존의 NestJs + TypeORM 조합에서 NestJs + Prisma 도입을 위해 MVP 프로젝트에 적용하는 과정에서 위처럼 원격 환경에 배포시 빌드 과정에서 TS 컴파일 관련 에러가 발생하면서 node_modules 내부에 위치한 prisma client에 Schema Property가 없다는 에러가 발생하였다.
해당 에러가 로컬 환경의 빌드에서는 발생되지 않고, 해당 원격 환경에서 빌드시 발생하고 있었는데 해당 에러와 관련된 스택 오버플로우, 깃헙 이슈를 찾아보면 하나같이 "IDE를 재시작해라"와 같은 로컬 환경에서의 이슈에 대한 답변만 존재하였다.
현재 사용하고 있던 배포 플로우는 다음과 같았다.
해당 배포 플로우로 서버 배포시, 4번째 단계에서 TS 컴파일 에러가 발생하고 있는데 yarn install 시에 prisma가 schema.prisma의 스키마의 일부를 읽지 못해 node_modules 내부의 prisma-client에 정상적으로 property가 세팅되지 않은 것으로 보여 기존의 배포 플로우의 3번째와 4번째 사이에 npx prisma generate를 실행시켜 node_modules 내부에 prisma-client를 생성하도록 수정하였다.
$ npx prisma generate 스크립트 실행을 배포 플로우에 추가한 이후 원격 환경에서도 정상적으로 배포됨을 확인할 수 있었다.
'개발 > NestJS' 카테고리의 다른 글