一、准备
sqlite很好用,使用electron开发桌面程序,sqlite编译最容易出错
编译sqlite需要提前准备的东西,以及下载的地址:
python2.7
下载地址:https://www.python.org/downloads/
安装完配置环境变量 ,环境变量配置可自行配置
vs2015,(2015、2017都可以)
下载地址:(微软的官网,https://visualstudio.microsoft.com/zh-hans/downloads/)
安装完之后,一定要安装vs2015所需的C++开发环境,这点很重要,因为要是没有这个东西,会报错,缺少v140的工具集,之所以没有选择vs2017,是由于vs201没有v140的工具集,具体sqlite为什么只能使用v140的工具集这点没有去查证。很多nodejs使用的c++包都需要
下载完安装部分所需的单个组件,如:
二、在工程的package.json中scripts命令添加
"postinstall": "electron-builder install-app-deps"
解释:
"postinstall"是npm的一个钩子,它会在你执行npm install安装完成后执行,”install-app-deps”是electron的命令,会利用”electron-builder”重新构建绑定了当下sqlite3版本的electron
三、运行这些命令
npm install sqlite3 --save npm install node-gyp -g npm install electron-rebuild --save .\node_modules\.bin\electron-rebuild.cmd cd .\node_module\sqlite3
编译完成之后,会在项目的node_modules\sqlite3\lib\binding\electron-v3.1-win32-x64\node_sqlite3.node文件
下来使用管理员模式打开cmd,运行下面命令
npm install -g windows-build-tools
查看electron版本,使用命令 electron --version 本例中electron版本为3.1.1,所以target=3.1.1 以及使用如下命令
node-gyp rebuild --target=3.1.1 --arch=x64 --target_platform=win32 --dist-url=https://atom.io/download/electron/ --module_name=node_sqlite3 --module_path=../lib/binding/electron-v3.1-win32-x64
此时可以在\sqlite3\lib\binding下,多了一个electron-v3.1-win32-x64文件夹,此文件下,就是electron所需的sqlite文件。
若是发现某个文件没有找到之类,需要,肯定是vs2015工具集问题,必须使用v140的工具集,若是需要下载windows sdk,在网络搜下载即可。
编译出来的64位的东西,打包成electron 32的位的有问题,,原因是--arch=x86,这边出了问题,网上有很多,介绍x64,x86_64,以及x86_ia32,ia32的知识,自己试着重新编译,将--arch=x86改成--arch=ia32,问题成功解决
node-gyp rebuild --target=3.1.1 --arch=ia32 --target_platform=win32 --dist-url=https://atom.io/download/electron/ --module_name=node_sqlite3 --module_path=../lib/binding/electron-v3.1-win32-ia32
下面是编译好的sqlite3对应的electron-v3.1-win32-ia32和electron-v3.1-win32-x64版本
https://github.com/cxywwl1226/node_sqlite3
交流
我是老礼,公众号「进军全栈攻城狮」作者 ,对前端技术保持学习爱好者。我会经常分享自己所学所看的干货,在进阶的路上,共勉!