如何在包括本机SQLITE3模块的Mac上编译Windows的电子代码



我的目标是为Mac创建一个分发,而另一个则为Windows创建一个。我想从我的Mac创建这两个分布。目前,我的Mac分布效果很好。

,但我仍然对Windows Distribution SQLite3模块有问题。

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

我真的不知道该怎么做才能使我的应用在Windows上正确工作。我不想在Windows计算机上编译我的代码。我想仅在Mac上编译我的代码。

我的配置是:

  • 节点V12.2.0
  • NPM v6.9.0
  • 电子v5.0.1
  • sqlite3 v4.0.8
  • MacOS Mojave V10.14.0

尝试使用以下方式编译Windows的SQLite3模块:

node-pre-gyp install --directory=./node_modules/sqlite3 --target_platform=win32 --target_arch=x64 --target=12.2.0

节点pre-gyp返回以下消息:

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

我得到 new Directory :./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_modules sqlite3 lib binding binding electron-v5.0-win32-x64 node_sqlite3.node 3.node是使用node_module 72编制的。node.js需要node_module_version 70.请尝试重新编译或重新安装模块(例如,使用'npm recuild'或'npm install'(。

...

自从数周以来,我一直遇到这个问题...

真的有可能从Mac中编译Windows的SQLite3模块?

节点pre-gyp是正确的解决方案吗?如何?

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

  • 在我的Mac上安装并行桌面;
  • 在此虚拟机中安装了Windows 10;
  • 在虚拟Windows Machine上安装了节点,NPM,Python,Electron,Electron,Sqlite等。
  • 虚拟机上的" electron -rebuild -f -w sqlite3"重新编译SQLite3
  • 从Windows到Mac
  • 复制新的./node_modules/sqlite/sqlite/sqlite/sqlite/sqlite/lib/binding/electron-v5.0-win32-x64
  • 在Mac上,用电子包装器重新编译了我用于PC的电子应用

现在,Windows的新编译版本可在Win Machine上工作!

相关内容

  • 没有找到相关文章

最新更新