因公司需要,在electron中使用sqlite3。在网页(渲染进程)的js脚本里面,写sql语句,删除和修改数据库。这是传统网页代码,所不能实现的功能。当然,你还可以在主进程里面写这样的sql语句,体会winform一致的感受。是不是听上去不错?不过这里面也是有不少大坑的。本篇文章将要讲述:在electron中,如何安装sqlite这个module模块。

大前提安装python环境

如果您的系统是mac,可以略过本步骤,因为mac系统自带python。

如果是win,请仔细检测python,是否加入系统path,推荐安装2.7版本的python,目前可能更加合适(不过,不排除在未来安装3x系列python更合适的可能性哦)。请确认安装了python,并且确认系统可以识别python的路径。就是说,python也许有可能没有加入系统变量。所以,请一定要注意,安装的时候,请选择把python加入系统变量path。

无论是使用python的那个版本,安装的时候,都会有个默认没有勾选的『加入系统变量path』的选项的。找到它,然后选择上即可。

特别提示:下面也可能是个导致编译失败的可能性,本地测试环境(win)里,nodejs的安装路径是不是放在了program files目录里面,就是说路径里面不能出现空格。这可能会导致编译命令中的路径出错。这个作为一个补充说明作为备选。

一句话脚本方案

本条命令不分win还是mac,命令都是一致的。但是对于编译结果来说:不同的系统下是不一样的,不能混用,这一点要注意。

cnpm install sqlite3@latest --build-from-source --runtime=electron --target=1.7.9 --dist-url=https://atom.io/download/electron --save

此命令就一条,执行不成功,就请自行科学上网。不要使用npm,npm会出错,cnpm才ok。安装成功后,就可以顺利使用sqlite,其实这个过程中,会试图下载sqlite3和你指定版本的electron的prebuild版本,没有发现的话。就会重新build一份合适的版本出来。所以一定要注意,版本号1.7.9的字样,指的是electron的版本号,就是你本地的electron的版本号。请使用下面的脚本,确定这个值!

electron --version

如果安装成功,但是执行报错的话,那么原因只有一个:版本号不一致。

如果node-pre-gyp报错404的话,不必理会,下一步就会在你的系统中自行编译的。可供下载的成品编译完成版本,不是很全的。因为这可能性数是: sqlite的版本数 x electron的版本数 x 系统版本(mac,win)= N种组合,不存在也是非常有可能的。已有的可供下载的成品版本,可以点击这里查看。http://npm.taobao.org/mirrors/sqlite3/

下图是安装完成node_modules文件夹截图,请确认nan和sqlite3这两个快捷方式是存在,否则使用的时候会报错的,请务必确认这一点。

对于安装不成功的情况,请从下面几点来检查。 1:科学上网 + cnpm,不解释。 2:python相关,请查看上面有关python的提示条目。

三句话脚本方案

本条解决方案和上一条解决方案,任选一个即可。

npm install sqlite3 --save
npm install electron-rebuild --save

如果是mac系统的话,执行:

./node_modules/.bin/electron-rebuild

如果是win系统的话,执行:

.\node_modules\.bin\electron-rebuild.cmd

总结 若要取得真经,必要经历劫难。sqlite3数据库的使用,在环境安装这步骤卡住的网友不在少数。本文的环境安装好之后,才能继续我们的文章,研究一下sqlite3在electron的使用方案。