Как скомпилировать мой код Electron для Windows на Mac, включая встроенный модуль sqlite3? - PullRequest
0 голосов
/ 13 мая 2019

Моя цель - создать дистрибутив для Mac и другой дистрибутив для Windows.Я хочу создать эти два дистрибутива с моего Mac.На данный момент мой дистрибутив для Mac работает хорошо.

Но у меня все еще есть проблема с модулем sqlite3 для дистрибутива Windows.

Единственный собственный модуль, который использует мое приложение, - это sqlite3.

Я действительно не знаю, что делать, чтобы наконец-то правильно работать мое приложение в Windows.Я не хочу компилировать мой код на компьютере с Windows.Я хочу скомпилировать мой код только на моем Mac.

Моя конфигурация:

  • узел v12.2.0
  • npm v6.9.0
  • electronic v5.0.1
  • sqlite3 v4.0.8
  • MacOS Mojave v10.14.0

Попытка скомпилировать модуль sqlite3 для Windows с помощью:

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

node-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

Я получаю новый каталог : ./node_modules/sqlite3/lib/binding/node-v72-win32-x64

I переименовать этот новый каталог для: ./node_modules/sqlite3/lib/binding/electron-v5.0-win32-x64

Когда я пытаюсьВ новом дистрибутиве на компьютере с Windows я получаю эту ошибку:

Uncaught Exception: ошибка: модуль D: \ c4 \ resources \ app \ node_modules \ sqlite3 \ lib \ binding \ Electron-v5.0-win32-x64\ node_sqlite3.node был скомпилирован с другой версией Node.js с использованием NODE_MODULE 72. Для этой версии Node.js требуется NODE_MODULE_VERSION 70. Пожалуйста, попробуйте перекомпилировать или переустановить модуль (например, используя usin.g 'npm rebuild' или 'npm install').

...

Я застрял с этой проблемой на протяжении многих недель ...

действительно ли возможно скомпилировать модуль sqlite3 для Windows с Mac?

Является ли предварительная сборка узла правильным решением для этого?Как?

1 Ответ

0 голосов
/ 08 июня 2019

Наконец, вот мое решение:

  • Установлен Parallel Desktop на моем Mac;
  • Установлена ​​Windows 10 на этой виртуальной машине;
  • Установленный узел, npm, python, электрон, электронное перестроение, sqlite и т. Д. На виртуальной машине Windows;
  • Перекомпилированный sqlite3 с "electronic-rebuild -f -w sqlite3" на виртуальной машине
  • Скопировал новый ./node_modules/sqlite3/lib/binding/electron-v5.0-win32-x64 с Windows на Mac
  • На Mac, перекомпилировал мое электронное приложение для ПК с электронным упаковщиком

И теперь новая скомпилированная версия для Windows работает на машине Win!

...