NextJSでprismaを使用してDBを操作した際にTypeError: The "payload" argument must be of type object. Received null`
背景
- NextJS製のアプリケーションを作っていて、prismaでDBを操作した際にタイトルのエラーが発生した
- NextJS 15で発生するものらしい
対応方法
GitHubのissueを参照
- 下記のissueが作成されている
- issue作成者の方は
prisma.someTable.createで発生したと言っているが、私はprisma.someTable.createManyで発生した- もしかしたら他のメソッドでも発生するのかも
解決方法
- 参考情報
To temporarily work around this issue, you need to remove the line //# sourceMappingURL=library.js.map from node_modules/@prisma/client/runtime/library.js.
node_modulesディレクトリの中にある依存ライブラリのスクリプトを直接編集することで解消できたnode_modules/@prisma/client/runtime/library.js.の以下の部分を削除する
//# sourceMappingURL=library.js.map // これを削除
patch-packageの実施
node_modulesを削除して再度npm ciなどをした場合に自動的に上記の変更が適用されるようにしておきべき- これについても issue のコメントに記述がある
- ただしコメントのとおり
npm i -D patch-packageとすると、production環境向け環境でnpm ciしたときにpatch-packageがインストールされない-D (--save-dev)は開発環境向け(NODE_ENV=development)のときにインストールされるnpm i --save patch-packageでインストールしたほうがいいのかな(またはNODE_ENV=development npm ciとしてインストールするとか?)