이번에 새 사이드프로젝트를 Nestjs로 진행하면서 Prisma를 처음으로 사용해보는데, 시작하자마자 에러를 만났다. (M1 맥북프로)
분명 pnpm prisma generate
하면 명령어는 잘 실행이 되는데
default로 ./node_modules/.prisma/client
경로에 생긴다던 Prisma Client가 나는 제대로 안 생겼다.
아래와 같은 메시지가 나왔고,
✔ Generated Prisma Client (v5.7.1) to ./node_modules/.pnpm/@prisma+client@5.7.1_prisma@5.7.1/node_modules/@prisma/client
PrismaClient
를 import 하려고 하면 자동완성까지 되면서
import { PrismaClient } from '@prisma/client';
이렇게 잘 import가 되는 것처럼 보였지만 빨간 줄이 그이고, PrismaClient가 없다고 경고가 떴다. 아래와 같은 에러 메시지!
Module '"@prisma/client"' has no exported member 'PrismaClient'.
실제로 경로를 따라 들어가보면 아무 내용도 없었다.
prisma/schema.prisma
파일에
generator client {
provider = "prisma-client-js"
}
에 아래처럼 output을 추가해서 수동으로 경로를 지정해준 뒤
generator client {
provider = "prisma-client-js"
output = "../node_modules/.prisma/client"
}
다시 prisma generate
명령어를 통해 클라이언트를 생성해주면 된다!
✔ Generated Prisma Client (v5.7.1) to ./node_modules/.prisma/client in 56ms
참고:
https://github.com/prisma/prisma/issues/2584
https://itprogramming119.tistory.com/entry/Yarn-Berry-Module-prismaclient-has-no-exported-member-PrismaClient-%ED%95%B4%EA%B2%B0
(24.02.18) 추가
tsconfig.json 에
"preserveSymlinks": true 옵션을 추가해두었던 것이 문제였던 것으로 보여 제거하고 테스트 중!
시작부터 막혀서 욕하고 있다가
바로 해결되었습니다.
감사합니당