在电子打包所有内容后,Prisma客户端找不到查询引擎

我正在使用 Electron 和 Prisma(以及我们不必担心的其他项目)制作一个项目。我一直在试图解决这个错误的时间:我不能让Prisma的发现查询引擎可执行文件,我已经尝试了一堆东西我互联网上找到,但仍然一无所获。

我试图设置 Prisma 将在哪里找到查询引擎,这个 repo 我找到了“解决方案”,但它没有用(至少对我来说不是):

这是我的 Prisma 架构:

datasource db {
    provider = "sqlite"
    url      = "file:./data.db"
}

generator client {
    provider = "prisma-client-js"
    binaryTargets = ["native"]
    output   = "../electron/database/generated/client"
}

我正在使用 webpack 来编译 Electron 和 React,所以我将模式生成设置为 Electron 文件夹,然后 webpack 将编译到“dist”文件夹。我使用copy-webpack-plugin来复制 schema.prisma 和 query-engine-windows.exe(这是我的操作系统)。毕竟我收到这个错误:

r [PrismaClientKnownRequestError]: spawn C:UsersTiago Oliveiraprogrammingweb-develectron-prisma-react-ts-passwordkeeperpackageswin-unpackedresourcesapp.asar.unpackeddistquery-engine-windows.exe ENOENT
    at C:UsersTiago Oliveiraprogrammingweb-develectron-prisma-react-ts-passwordkeeperpackageswin-unpackedresourcesapp.asardistmain.js:69:77852
    at c (C:UsersTiago Oliveiraprogrammingweb-develectron-prisma-react-ts-passwordkeeperpackageswin-unpackedresourcesapp.asardistmain.js:1:54711)
    at Generator._invoke (C:UsersTiago Oliveiraprogrammingweb-develectron-prisma-react-ts-passwordkeeperpackageswin-unpackedresourcesapp.asardistmain.js:1:54464)
    at Generator.throw (C:UsersTiago Oliveiraprogrammingweb-develectron-prisma-react-ts-passwordkeeperpackageswin-unpackedresourcesapp.asardistmain.js:1:55070)
    at asyncGeneratorStep (C:UsersTiago Oliveiraprogrammingweb-develectron-prisma-react-ts-passwordkeeperpackageswin-unpackedresourcesapp.asardistmain.js:1:195068)
    at s (C:UsersTiago Oliveiraprogrammingweb-develectron-prisma-react-ts-passwordkeeperpackageswin-unpackedresourcesapp.asardistmain.js:1:195340)
    at processTicksAndRejections (internal/process/task_queues.js:93:5) {
  code: 'ENOENT',
  clientVersion: '2.24.1',
  meta: undefined
}

事件使用此设置获取应用程序路径并将路径设置为 qe(查询引擎)所在的位置,它说它不存在......?

datasource db {
    provider = "sqlite"
    url      = "file:./data.db"
}

generator client {
    provider = "prisma-client-js"
    binaryTargets = ["native"]
    output   = "../electron/database/generated/client"
}

为了确保我没有疯,我沿着它所说的不存在的路径把它扔到控制台上,然后它就跑了!所以这里有些不对劲。

如果您对文件的外观有任何疑问,可以查看此项目 repo。

如果你想得到错误并尝试自己得到错误,只需克隆 repo 并执行 yarn 并运行“yarn package:exe”m,这将编译主文件夹,即 Electron,然后编译 src 文件夹,即React,然后它会为 Electron 捆绑它,然后立即执行它:yarn package:exewebpack-(all)>electron->execute。

以上是在电子打包所有内容后,Prisma客户端找不到查询引擎的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>