electron 搭配 sqlite3 数据库之环境安装
发布于 作者:苏南大叔 来源:程序如此灵动~在electron
中使用sqlite3
,是个很奇妙的体验。你可以在网页(渲染进程)的js
脚本里面,写sql
语句,删除和修改数据库。这是传统网页代码,所不能实现的功能。当然,你还可以在主进程里面写这样的sql
语句,体会winform
一致的感受。是不是听上去不错?不过这里面也是有不少大坑的。
本篇文章将要讲述:在electron
中,如何安装sqlite
这个module
模块。
大前提安装python
环境
如果您的系统是mac
,可以略过本步骤,因为mac
系统自带python
。
如果是win
,请仔细检测python
是否加入系统环境变量,推荐安装2.7
版本的python
,目前可能更加合适(不过,不排除在未来推荐安装3x
系列python
的可能性)。
截至到发稿,python@2.7
下载地址如下:(注意版本号变化中)
- https://www.python.org/downloads/release/python-2711/
- https://www.python.org/downloads/release/python-2715/
注意事项一
请确认安装了python
,并且确认系统可以识别python
的路径。请一定要注意,安装的时候,请选择把python
加入系统变量path
。下面是截图是win
下的python
安装截图,仅供参考。
无论是使用python
的那个版本,安装的时候,都会有个默认没有勾选的『加入系统变量path』的选项的。找到它,然后选择上即可。
注意事项二
下面也可能是个导致编译失败的可能性,本地测试环境(win
)里,nodejs
也许安装路径放在了program files
目录里面,这可能会导致编译命令中的路径出错。这个作为一个补充说明作为备选,就是说nodejs
路径里面最好不要出现空格。
win
环境下构建相关补充说明
如果您的系统是mac,可以略过本步骤,因为mac
系统不用这么麻烦。在windows
环境下,rebuild
是否成功,还需要特殊设置build-tools
。
- 传说中,在
win
下,如果想要顺利构建sqlite
,还需要安装vs2015
。但是苏南大叔的电脑上,本来就安装了vs2015
,所以,这点无从验证。如果您要新安装vs2015
的话,鉴于其安装所需要的时间过长,基本上至少半天的功夫就废了,您要有较强的心理准备。可以先试试下面的方案,不行的话,再来安装vs2015
。 - 另外,江湖传闻:不需要安装
vs2015
,仅仅需要执行npm install windows-build-tools -g
。苏南大叔,在这之前,也安装过了windows-build-tools
。所以,这点上也无从验证。这个插件的安装,还是比较快速的。
方案一:一句话脚本方案
本条命令不分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
如果安装成功,但是执行报错的话,那么原因只有一个:版本号不一致。请检查下面几个位置的版本号是否一致?
electron
全局的版本electron --version
electron
本地的版本node_modules/.bin/electron --version
package.json
中的electron
版本号- 构建命令中的
--target=
后面的版本号
如果node-pre-gyp
报错404的话,不必理会,下一步就会在你的系统中自行编译的。可供下载的成品编译完成版本,不是很全的。因为这可能性数是: sqlite
的版本数 x electron
的版本数 x 系统版本(mac
,win
)= N种组合,不存在也是非常有可能的。已有的可供下载的成品版本,可以点击这里查看。
下图是安装完成node_modules
文件夹截图,请确认nan
和sqlite3
这两个快捷方式是存在,否则使用的时候会报错的,请务必确认这一点。
对于安装不成功的情况,请从下面几点来检查。
1:科学上网 + cnpm
,不解释。
2:python
相关,请查看上面有关python
的提示条目。
3:替换参数dist-url
,替换方式如下所示:
方案二:三句话脚本方案
本条解决方案和上一条解决方案,任选一个即可。
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
,由于苏南大叔还没有试验过,所以暂不表态,仅仅是列出链接而已。
总结
若要取得真经,必要经历劫难。sqlite3
数据库的使用,在环境安装这步骤卡住的网友不在少数。本文的环境安装好之后,才能继续后续的文章,研究一下sqlite3
在electron
的使用方案。
特别是在win
环境下,一定要注意:
python2.7
是否正确安装?(是否加入了环境变量?安装目录中是否没有空格?)windows-build-tools
是否正确安装?rebuild
命令中的electron
的版本号是否正确设置?
没搞定的同学,也不要灰心,这里多尝试几次,总是会成功的。这个sqlite
的构建步骤确实非常困难,很多人都没能正确构建。不过,关键点就上面所述这么多,没有其他的。所以,请多尝试几次吧!
更多有关sqlite
的内容,请关注苏南大叔的经验文章。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
重头开始
感谢南叔
作者您好,本人尝试集成的时候是报错,尝试用您的方法也是报错同样的错误:
npm install sqlite3 --runtime=electron --target=13.0.0 --dist-url=https://atom.io/download/electron
我详细写了下报错的过程,能否请教下:https://segmentfault.com/q/1010000042003882
我要看隐藏内容
打包后数据库操作都不能用 要怎么处理呢
electron 12.0.0版本卡在了 npm install -s dns 上面
难受
操,为了评论看内容,竟然要翻墙,都是中国人何必相互为难呢?
哥,你访问github也要翻墙么?
入坑
踩坑中.........
方案一的不成功跟vue-cli的版本有关吗
非常感谢
这样不用在安装 vs2015
npm install --global --production windows-build-tools --vs2015
npm config set msvs_version 2015
方案一的不成功跟vue-cli的版本有关吗
我在第三步.\node_modules\.bin\electron-rebuild.cmd的时候报Unable to find electron-prebuilt's version number,这是需要先装好electron吗?
楼主有遇到使用electron-builder后,sqlite没有被打包进去的问题吗?我未打包前一切正常,打包后数据库操作都不能用,反编译后的打包文件,发现在没有我的数据库文件db.js
在.\node_modules\.bin\electron-rebuild.cmd这一步执行出错了,后来我发现在sqlite3底下生成了build.sln,用vs.net2017打开后,自动升级项目,并在vs.net里面直接编译,居然通过啦。
震惊