😊
VercelデプロイでPrismaのエラーが出たときの対処法
状況
Next.jsアプリをVercelにデプロイしようとしたら、以下のようなエラーが出てしまいました。
解決方法を備忘録として残しておきます。
Error [PrismaClientInitializationError]: Prisma has detected that this project was built on Vercel, which caches dependencies. This leads to an outdated Prisma Client because Prisma's auto-generation isn't triggered.
原因を調べてみると、Vercelの依存関係キャッシュとPrisma Clientの生成タイミングに問題があることがわかりました。
どうやって解決するの?
package.jsonのビルドスクリプトを修正して、ビルド時にprisma generateを実行するようにします。
さらに、postinstallスクリプトも追加して、依存関係インストール後にもprisma generateが実行されるようにします。
実装方法
package.jsonを以下のように修正します:
{
"scripts": {
"dev": "next dev",
"build": "prisma generate && next build", // ここを修正
"start": "next start",
"lint": "next lint",
"postinstall": "prisma generate" // これを追加
}
}
Discussion