📐

[Prisma]Module '"@prisma/client"' has no exported memberのエラー

2022/11/02に公開

前提

NestJSのアプリケーションをDockerでビルドした時に、下記のエラーに遭遇

Module '"@prisma/client"' has no exported member 'User'

Dockerfileの内容は下記

FROM node:16 as build

WORKDIR /app
COPY package*.json .
RUN npm install
COPY . .
RUN npm run build

試したこと①

https://github.com/prisma/prisma/issues/2584
schema.prisma にoutputを追加し、prisma/clientの出力場所を変更

generator client {
    provider = "prisma-client-js"
    output = "../node_modules/.prisma/client" // 追加
}

→結果変わらず

試したこと②

https://github.com/prisma/prisma/issues/12417
Dockerのビルド時に docker buildx でビルドしてみる

docker buildx build --platform linux/amd64 -t app_name .  

→結果変わらず

試したこと③(←これで解決)

Dockerfileの中でnpx prisma generateを実行する
自分の場合はこちらでビルドが通るようになりました

FROM node:16 as build

WORKDIR /app
COPY package*.json .
RUN npm install
COPY . .
RUN npx prisma generate // 追加
RUN npm run build

→ビルド成功!

参考

https://github.com/prisma/prisma/issues/2584
https://github.com/prisma/prisma/issues/12417
https://www.prisma.io/docs/concepts/components/prisma-client/working-with-prismaclient/generating-prisma-client

Discussion