SvelteKit+Prismaで作成したアプリをVercelにデプロイするとエンドポイントが404になる件への対応
やりたかったこと
タイトル通りですが、SvelteKitとPrismaで構成したアプリをVercelにデプロイして動かしてみたところ、ページから API への通信が 404(Not Found) エラーで失敗していました。
SvelteKit はいわば、Next.js の Svelte 版で/routes以下に.(js|ts)ファイルを配置するとエンドポイントとして利用することができますが、ここへの通信が失敗していました。
解決方法
以下のようにpostbuildコマンドを package.json に追加する。
{
"scripts": {
...
"build": "svelte-kit build",
+ "postbuild": "cp prisma/schema.prisma .vercel_build_output/functions/node/render/ && cp node_modules/@prisma/engines/*query* .vercel_build_output/functions/node/render/",
...
}
}
参考
https://github.com/sveltejs/kit/issues/1547
https://github.com/prisma/prisma/issues/7019