Electron 如何在包含本机sqlite3模块的Mac上编译我的Windows电子代码?

Electron 如何在包含本机sqlite3模块的Mac上编译我的Windows电子代码?,electron,node-sqlite3,node-pre-gyp,Electron,Node Sqlite3,Node Pre Gyp,我的目标是为Mac创建一个发行版,为Windows创建另一个发行版。我想从我的Mac创建这两个发行版。目前,我的Mac发行版运行良好 但是我仍然对用于Windows发行版的sqlite3模块有问题 我的应用程序使用的唯一本机模块是sqlite3 我真的不知道该怎么做才能让我的应用程序在Windows上正常运行。我不想在Windows机器上编译代码。我只想在Mac电脑上编译代码 我的配置是: 节点v12.2.0 npm v6.9.0 electron v5.0.1 SQLITE3V4.0.8 M

我的目标是为Mac创建一个发行版,为Windows创建另一个发行版。我想从我的Mac创建这两个发行版。目前,我的Mac发行版运行良好

但是我仍然对用于Windows发行版的sqlite3模块有问题

我的应用程序使用的唯一本机模块是sqlite3

我真的不知道该怎么做才能让我的应用程序在Windows上正常运行。我不想在Windows机器上编译代码。我只想在Mac电脑上编译代码

我的配置是:
  • 节点v12.2.0
  • npm v6.9.0
  • electron v5.0.1
  • SQLITE3V4.0.8
  • MacOS Mojave v10.14.0
正在尝试使用以下命令为Windows编译sqlite3模块: 节点pre-gyp返回以下消息:
我得到一个新目录:./node_modules/sqlite3/lib/binding/node-v72-win32-x64

I重命名此新目录:./node_modules/sqlite3/lib/binding/electron-v5.0-win32-x64

在Windows计算机上尝试新发行版时,出现以下错误: 未捕获异常: 错误:模块D:\c4\resources\app\node\u modules\sqlite3\lib\binding\electron-v5.0-win32-x64\node\u sqlite3.node是使用node\u模块72根据不同的node.js版本编译的。此版本的Node.js需要Node_模块_版本70。请尝试重新编译或重新安装模块(例如,使用“npm重建”或“npm安装”)

... 我被这个问题困扰了好几个星期

是否真的可以从Mac电脑上编译适用于Windows的sqlite3模块?


node pre gyp是解决这一问题的正确方案吗?如何解决?

最后,这里是我的解决方案:

  • 在我的mac电脑上安装了并行桌面
  • 在此虚拟机中安装了Windows 10
  • 在虚拟Windows机器上安装了node、npm、python、electron、electron rebuild、sqlite等
  • 在虚拟机上使用“electron-rebuild-f-w sqlite3”重新编译sqlite3
  • 将新的./node_modules/sqlite3/lib/binding/electron-v5.0-win32-x64从Windows复制到Mac
  • 在mac电脑上,使用electron packager重新编译我的electron PC应用程序

现在,Windows的新编译版本在Win机器上运行

最后,这里是我的解决方案:

  • 在我的mac电脑上安装了并行桌面
  • 在此虚拟机中安装了Windows 10
  • 在虚拟Windows机器上安装了node、npm、python、electron、electron rebuild、sqlite等
  • 在虚拟机上使用“electron-rebuild-f-w sqlite3”重新编译sqlite3
  • 将新的./node_modules/sqlite3/lib/binding/electron-v5.0-win32-x64从Windows复制到Mac
  • 在mac电脑上,使用electron packager重新编译我的electron PC应用程序

现在,Windows的新编译版本在Win机器上运行

我在
节点画布
–(“节点模块版本”不匹配等)方面遇到了类似的问题。我花了几天的时间处理各种版本的东西,但最终还是放弃了。我也会很快放弃的,我的朋友!我在
节点画布
–(“节点模块版本”不匹配等)方面遇到了类似的问题。我花了几天的时间处理各种版本的东西,但最终还是放弃了。我也会很快放弃的,我的朋友!
node-pre-gyp install --directory=./node_modules/sqlite3 --target_platform=win32 --target_arch=x64 --target=12.2.0
node-pre-gyp WARN Using request for node-pre-gyp https download
Warning: node-pre-gyp could not find exact match for 12.2.0
Warning: but node-pre-gyp successfully choose 12.0.0 as ABI compatible target
Warning: node-pre-gyp could not find exact match for 12.2.0
Warning: but node-pre-gyp successfully choose 12.0.0 as ABI compatible target

[sqlite3] Success: "/Users/Flooder/Programmes/electron/c4/node_modules/sqlite3/lib/binding/node-v72-win32-x64/node_sqlite3.node" is installed via remote