我们想要实现的是在我们的(linux)构建服务器上为我们的电子应用程序构建linux和windows安装程序。
安装Wine后,这基本工作,除了Prisma:
。Prisma依赖于特定于操作系统的二进制文件——因此,我们必须为每个平台提供正确的二进制文件。
Prisma查询引擎/Prisma客户端
这部分工作:我们将binaryTarget设置为我们的目标平台:binaryTargets = ["windows", "debian-openssl-1.1.x"]
.
当我们现在生成客户端(prisma generate
)时,目标目录(node_modules/.prisma/client/
)包含linux和windows的查询引擎:libquery_engine-debian-openssl-1.1.x.so.node
,query_engine-windows.dll.node
Prisma Migration Engine
。在package.json
中,我们只指定prisma
依赖项,npm只会在node_modules/@prisma/engines/
中安装当前操作系统的二进制文件,即:libquery_engine-debian-openssl-1.1.x.so.node
,migration-engine-debian-openssl-1.1.x
我们如何让npm安装两个迁移引擎(即Windows和Linux)?
- 相应设置PRISMA_CLI_BINARY_TARGETS:例如:
PRISMA_CLI_BINARY_TARGETS=darwin,rhel-openssl-1.0.x npm install
- 然后启动
npm install
- ,现在所有指定操作系统的二进制文件都应该存在于
node_modules/@prisma/engines
中- 在我的情况下,这最初没有工作
- 删除
node_modules/@prisma/engines
并重新启动npm install
后,它工作了