场景: 本地使用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