最近在客户端开发中需要用带数据库作数据的存储,之前为了图方便,一直都是使用浏览器自带的indexedDb。但毕竟这样也只是一种折中的选择,因此想着把数据切换到sqliteDb中。研究了一番终于搞定。
- better-sqlite3看官网上说是对sqlite3进行了更好的封装,而且github上也有2k个star,所以就选它了!
- github.com/JoshuaWise/…
- electron是基于nodejs的环境进行开发的,而在nodejs中使用better-sqlite3是需要node-gyp重新编译的。
电脑上安装vs2015以上的版本 我自己电脑上一直用的是vs2017因此我使用vs2017作为本次编译的windowsSdk库。 这里要注意的是,老的gyp版本需要vs2015的库(4.0之前),而更新最新的才支持vs2017以及vs2019。
- 1.安装or更新node-gyp
npm install node-gyp@latest npm prefix -g | % {npm config set node_gyp "$_ ode_modules ode-gypbin ode-gyp.js"}复制代码
- 2.设置VCINSTALLDIR
设置环境变量 VCINSTALLDIR的值为VS目录,比如我的电脑上的VS目录就是
C:Program Files (x86)Microsoft Visual Studio 12.0VC复制代码
- 3.设置gyp vs版本
npm config set msvs_version 2017 --global node-gyp configure --msvs_version=2017复制代码
- 4.执行编译
注意:到这一步只是在nodejs环境中完成了better-sqlite3的编译,但倘若要在electron的环境中使用的话 还需要安装 electron-rebuild 插件
- 5.在目录下执行 https://blog.51cto.com/u_15091669/node_modules/.bin/electron-rebuild 命令
注意:原来项目中,我的electron是4.x版本,nodejs版本是10.2.x。而这个版本的NODE_MODULE_VERSION是 69,而node10版本的是64,因此就导致这样反向rebuild的时候会报错v8错误。
经过一番查阅之后,翻查了一下找到了如下的对应表:
思索一番之后,尝试把node升级到12(72) electron升级到5(70),这样node的版本高于electron的版本,就可以成功rebuild了。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/40578.html