如何集成prism与无服务器框架aw -nodejs-typescript模板



我正在使用无服务器框架构建一个无服务器函数。然而,我有一个问题,运行它在本地

错误:enent:没有这样的文件或目录,开放"/.esbuild .build/node_modules/.prisma/客户/schema.prisma">

棱镜/schema.prisma

generator client {
provider      = "prisma-client-js"
binaryTargets = ["native", "rhel-openssl-1.0.x"]
}

serverless.ts

package: {
individually: true,
patterns: [
"!node_modules/.prisma/client/libquery_engine-*",
"node_modules/.prisma/client/libquery_engine-rhel-*",
"!node_modules/prisma/libquery_engine-*",
"!node_modules/@prisma/engines/**",
],
},

步骤:

npx prisma generate && npm install 
sls invoke local -f main

我做错了什么?

注意:

  • 尝试遵循此示例:https://github.com/prisma/prisma-examples/tree/latest/deployment-platforms/aws-lambda

  • 我正在使用无服务器的aws-nodejs- typescript模板,它使用serverless-esbuild而不是serverless-webpack

你可以通过设置Prisma Client的位置来解决这个问题。它对local和lambda都有效。

棱镜/schema.prisma

generator client {
provider = "prisma-client-js"
output   = "../src/generated/client"
}
npx prisma generate

serverless.ts

package: {
individually: true,
patterns: [
"src/generated/client/schema.prisma",
"!src/generated/client/libquery_engine-*",
"src/generated/client/libquery_engine-rhel-*",
"!node_modules/prisma/libquery_engine-*",
"!node_modules/@prisma/engines/**",
],
},

import { PrismaClient } from "../generated/client";
<<p>文件夹结构/strong>
- src
- functions
- generated
- serverless.ts
- ...

看起来您正在尝试从node_modules文件导入prisma.schema文件,这不是它通常去的地方。哪里是你的prisma.schema文件位于相对于你的项目的根?

如果不在./prisma.schema中,则需要使用以下选项配置其位置:

https://www.prisma.io/docs/concepts/components/prisma-schema prisma-schema-file-location

最新更新