场景: 本地使用macos开发,服务器是Debian12,打包时需要本地打包再上传
schema.prisma
配置 binaryTargets
字段,本地正常使用,打包后会自动区分环境
generator client {
provider = "prisma-client-js"
binaryTargets = ["native", "debian-openssl-3.0.x"]
}
可以看到 generate
时生成的目录下有俩 .node
二进制包,分别对应 binaryTargets
两个环境
另外:不要把output指定到node_modules外面,使用默认配置即可,这样打包后的文件里使用了 __dirname
导致会报错。 此条解决办法来自github issues
,有更好的办法,欢迎留言
[nuxt] [request error] [unhandled] [500] __dirname is not defined in ES module scope