环境配置踩了不少坑,特此记录
基于项目node版本为14.15.0,以下一系列均在node: 14.15.0版本下进行
以下操作均为windows环境下
nvm切换node版本
参考博客
来源于这啊,想看的可以移步,很详细。
zhuanlan.zhihu.com/p/408785321
安装编译工具
- Python 3.8.10(Node.js 14 不支持 Python 3.11+)
- Visual Studio 2019 Build Tools(勾选 C++桌面开发 和 Windows 10 SDK)
- node-gyp 7.1.2 全局安装
注意:
- python与vs2019下载地址不知道的可以AI一下,比如deepseek,chatgpt
- 基于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
可以安装成功,不会出现下图中的报错。【博客中的图,我自己的没截了,报错一样】
参考博客中的安装成功截图也拿来用用
成功后的截图:【该项目之前未通过cnpm,所以这些_开头的都是本次cnpm下载sqlite3出现的】
sqlite无视,是方便sqlite3使用的,封装了promise。
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
哟,报错跟上面不一样了,是不是离成功更近了。
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
哦豁。成功了!
搞定!。代码中也尝试了可以使用,且没有再出现使用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架构的包
上图中可看到lib下多了electron-v21.4-win32-x64,开发环境与生产环境就都没问题了。
总结
安装sqlite3坑不少,新项目跟老项目区别挺大的,控制好版本能少踩很多坑。好的,告辞。