%1不是有效的Win32应用程序..电子应用程序中的Sqlite3

时间:2017-10-02 03:29:02

标签: sqlite electron

我正在尝试让sqlite3在Windows7和10上运行的电子应用程序中运行。运行以下命令,我能够创建electron-v1.7-win32-x64\node_sqlite3.node

   cd node_modules/sqlite3 && sudo npm install nan 
&& sudo npm run prepublish && sudo node-gyp configure --module_name=node_sqlite3 --module_path=…/lib/binding/electron-v1.7-win32-x64 
&& node-gyp rebuild --target=1.6.11 --arch=x64 --target_platform=win32 --dist-url=https://atom.io/download/atom-shell 
--module_name=node_sqlite3 --module_path=…/lib/binding/electron-v1.7-win32-x64

但是,我得到Uncaught Error: %1 is not a valid Win32 application. \\?\c:\folder\ppt_win32-x64\resources\app\node_modules\sqlite3\lib\binding\electron-v1.7-win32-x64\node_sqlite3.node.

我的节点版本是v7.4.0。电子v1.6.11。

1 个答案:

答案 0 :(得分:-1)

我试图从mi Mac编译Windows,但我也遇到了这个问题,但是经过一番阅读,我弄清楚了如何进行操作,毕竟我可以说我明白了。昨天我花了一整天的时间在(其他)Linux笔记本电脑中设置Windows虚拟机(我之所以使用linux笔记本电脑,是因为我的Mac电脑的存储空间已耗尽...)。我在Windows中的电子主进程的preloadScript遇到了问题,Cant找到了该脚本,它也已解决。

无论如何,我认为@tojocky的库节点打印机维护得很好,另一方面,在电子生成器文档中,他们说您出于自然原因应该使用本机编译。有了它,您将看到它是一个更干净实用的解决方案...

这是我的整个过程,希望对遇到相同问题的人有所帮助:

  • 获取VirtualBox(或Parallels,但不是免费的)
  • 获取W10的iso
  • 使用此W10 iso创建一个VM,并且应该为该VM提供一定的存储空间(因为需要编译一些依赖项),我已为此VM分配了60gb
  • 一旦我运行了该VM,我便将其安装在了Visual Studio 2017机器中(包括其构建工具,这是必需的)
  • 然后,我用CMD制作剩下的
  • 安装NodeJS(和NPM,但随附)
  • 全局安装node-gyp
  • 安装Python 2.7
  • 从git克隆您的项目(以我为例)
  • npm i(在您的项目中),您当然应该在package.json中具有模块electronic-builder作为npm依赖项。 (这里我遇到了一些麻烦,因为当node-gyp尝试重建打印机以生成Windows二进制文件时失败了,这是因为找不到python可执行文件,因此如果遇到此问题,您应该将其添加为:npm在我的情况下config set python“ c:\ Python27 \ python.exe”)
  • 然后再尝试npm i和Voila!

如果仍然有错误,您也可以重建本机依赖性,请运行:

毕竟,您应该使用electron-builder进行构建,在我的情况下,我的npm脚本命令是build --win --x64,但是您也可以对32位使用--ia32标志