Vercel Deploy Error "Prisma's auto-generation isn't triggered."
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. To fix this, make sure to run the `prisma generate` command during the build process.Learn how: https://pris.ly/d/vercel-buildat fa (/vercel/path0/node_modules/@prisma/client/runtime/library.js:33:69)at new t (/vercel/path0/node_modules/@prisma/client/runtime/library.js:131:739)at 8046 (/vercel/path0/.next/server/chunks/336.js:1:7195)at t (/vercel/path0/.next/server/webpack-runtime.js:1:127)at 1176 (/vercel/path0/.next/server/chunks/336.js:1:3310)at t (/vercel/path0/.next/server/webpack-runtime.js:1:127)at 9318 (/vercel/path0/.next/server/app/data-pasien/page.js:1:2158)at t (/vercel/path0/.next/server/webpack-runtime.js:1:127)at 7127 (/vercel/path0/.next/server/app/data-pasien/page.js:1:965)at t (/vercel/path0/.next/server/webpack-runtime.js:1:127) {clientVersion: '5.16.0',errorCode: undefined}> Build error occurredError: Failed to collect page data for /data-pasienat /vercel/path0/node_modules/next/dist/build/utils.js:1267:15at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {type: 'Error'}Error: Command "npm run build" exited with 1
Kesalahan yang Anda alami menunjukkan bahwa Prisma Client tidak dihasilkan selama proses build di Vercel. Hal ini disebabkan oleh cache dependencies di Vercel, yang menyebabkan Prisma Client menjadi usang karena tidak dihasilkan ulang secara otomatis.
Solusi
Untuk mengatasi masalah ini, Anda perlu memastikan bahwa perintah prisma generate dijalankan selama proses build di Vercel. Anda dapat melakukannya dengan menambahkan perintah ini ke konfigurasi build Anda.
Berikut langkah-langkah untuk melakukannya:
Langkah 1: Tambahkan Perintah prisma generate ke vercel.json
Jika Anda menggunakan file vercel.json untuk mengkonfigurasi build di Vercel, tambahkan perintah prisma generate di dalam build script.
{
"build": {
"env": {
"DATABASE_URL": "your-database-url"
},
"commands": {
"prebuild": "npx prisma generate"
}
}
}
Langkah 2: Perbarui package.json
Pastikan package.json Anda memiliki script build yang menjalankan prisma generate sebelum build dimulai.
{
"scripts": {
"build": "prisma generate && next build"
}
}
Langkah 3: Deploy Ulang ke Vercel
Setelah memperbarui package.json dan (jika digunakan) vercel.json, deploy ulang aplikasi Anda ke Vercel. Vercel akan menjalankan perintah build yang diperbarui dan memastikan bahwa Prisma Client dihasilkan selama proses build.
Contoh package.json
Berikut adalah contoh lengkap package.json dengan script build yang diperbarui:
{
"name": "your-project-name",
"version": "1.0.0",
"scripts": {
"dev": "next dev",
"build": "prisma generate && next build",
"start": "next start"
},
"dependencies": {
"next": "latest",
"react": "latest",
"react-dom": "latest",
"@prisma/client": "^5.16.0"
},
"devDependencies": {
"prisma": "^5.16.0"
}
}
Langkah 4: Verifikasi Deploy
Setelah deploy selesai, pastikan untuk memverifikasi bahwa aplikasi berjalan dengan benar dan Prisma Client berfungsi sesuai harapan. Anda bisa melakukan ini dengan mengakses aplikasi di Vercel dan memeriksa log untuk memastikan tidak ada error yang terkait dengan Prisma Client.
Dengan langkah-langkah ini, Anda memastikan bahwa Prisma Client dihasilkan selama proses build di Vercel, sehingga mencegah masalah yang disebabkan oleh caching dependencies.