electron安装SQLite3和环境配置踩坑

783 阅读3分钟

环境配置踩了不少坑,特此记录

基于项目node版本为14.15.0,以下一系列均在node: 14.15.0版本下进行

以下操作均为windows环境下

nvm切换node版本 image.png

参考博客

来源于这啊,想看的可以移步,很详细。 zhuanlan.zhihu.com/p/408785321 image.png

安装编译工具

  • Python 3.8.10(Node.js 14 不支持 Python 3.11+)
  • Visual Studio 2019 Build Tools(勾选 C++桌面开发 和 Windows 10 SDK
  • node-gyp 7.1.2 全局安装

注意:

  1. python与vs2019下载地址不知道的可以AI一下,比如deepseek,chatgpt
  2. 基于node版本AI一下对应工具版本,版本不对,就各种奇怪问题了。

sqlite3 cnpm安装

版本:5.0.2,基于node14.15.0找的

只要编译工具安装没问题,sqlite3安装基本不会出现问题

根据参考博客中,使用

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

可以安装成功,不会出现下图中的报错。【博客中的图,我自己的没截了,报错一样】 image.png

参考博客中的安装成功截图也拿来用用

image.png 成功后的截图:【该项目之前未通过cnpm,所以这些_开头的都是本次cnpm下载sqlite3出现的】

image.png

sqlite无视,是方便sqlite3使用的,封装了promise。

image.png

ps: 到这里已经可以正常使用sqlite3了,怎么用代码不贴了。这里说个问题,我司项目目前统一只用npm,后续如果下第三方库使用,npm install 库名,此时会出现用cnpm下载的库丢失,是个问题啊。

sqlite3 npm安装

版本:同上5.0.2,基于node14.15.0找的

这里主要是解决不想使用cnpm,遇到上面cnpm安装中提到的npm安装报错的问题。

安装命令

1.参考博客中安装命令改成npm

npm install sqlite3\@5.0.2 --build-from-source --runtime=electron --target=21.4.4 --dist-url=<https://atom.io/download/electron> --save-dev

2.dist-url路径改成淘宝

npm install sqlite3\@5.0.2 --build-from-source --runtime=electron --target=21.4.4 --dist-url=<https://npmmirror.com/mirrors/electron/> --save-dev

3.dist-url路径改成华为

npm install sqlite3\@5.0.2 --build-from-source --runtime=electron --target=21.4.4 --dist-url=<https://mirrors.huaweicloud.com/electron/> --save-dev

好的,以上全都不行。

4.修改dist-url为官方地址

npm install sqlite3\@5.0.2 --build-from-source --runtime=electron --target=21.4.4 --dist-url=<https://electronjs.org/headers/> --save-dev

哟,报错跟上面不一样了,是不是离成功更近了。

image.png

5.既然找不到python,那我就告诉你在哪

首先通过命令where python可以找到当前python地址。然后命令中添加python地址

npm install sqlite3\@5.0.2 --build-from-source --runtime=electron --target=21.4.4 --dist-url=<https://electronjs.org/headers/> --python=C:\你的用户名\AppData\Local\Programs\Python\Python38\python.exe --save-dev

哦豁。成功了!

image.png 搞定!。代码中也尝试了可以使用,且没有再出现使用npm下载第三方库导致sqlite3库丢失的问题了。

补充:上述cnpm安装与npm安装全当我放屁

上述cnpm安装与npm安装,node_modules/sqlite3中缺少electron-v21.4-win32-x64, 开发环境没问题,打包成客户端后会报错。cannot find module sqlite3.

所以,上面的就当我放屁了。

安装sqlite3流程如下就可以。

【编译工具安装结束后】

1.npm install -g node-gyp

npm install -g node-pre-gyp

2.npm install sqlite3

接着cd到node_module/sqlite3

3.执行以下命令

node-gyp rebuild --target=21.4.4 --arch=x64 --target_platform=win32 --dist-url=atom.io/download/el… --module_name=node_sqlite3 --module_path=../lib/binding/electron-v21.4-win32-x64 这是生成windows架构的包

image.png 上图中可看到lib下多了electron-v21.4-win32-x64,开发环境与生产环境就都没问题了。

总结

安装sqlite3坑不少,新项目跟老项目区别挺大的,控制好版本能少踩很多坑。好的,告辞。