electron sqlite3_electron集成sqlite3,win10上折腾了2天
最近要做個(gè) IM,PC 端選擇用 electron,跨端的最佳選擇了。桌面端項(xiàng)目,肯定少不了本地?cái)?shù)據(jù)庫,本來想用 sql.js,看了下需要手動(dòng)拼接 SQL 語句,小型項(xiàng)目可以玩玩,項(xiàng)目大了就有點(diǎn)難受了。
原先的 Nodejs 項(xiàng)目只要是涉及到數(shù)據(jù)庫的,都是用 sequelize,Nodejs 端 ORM 框架首推。由于之前寫 Java 代碼的,Hibiernate、MyBatis、iBatis 都很熟練了,這個(gè)用起來還比較得心應(yīng)手。
關(guān)鍵是不用手寫 SQL。
一、折騰過程
先在 sequelize 看了下支持 sqlite3,然后就開始 install 了。
$ npm install sequelize sqlite3 --save # or $ yarn add sequelize sqlite3 --save安裝過程還好,就是時(shí)間稍微有點(diǎn)長,然后在項(xiàng)目中增加了 sequelize 的驗(yàn)證代碼,嘗試啟動(dòng)看下效果,起不來了,錯(cuò)誤消息中有這么一行。
Error: Please install sqlite3 package manually以為是要安裝 sqlite3 服務(wù),去官網(wǎng)看了下,確實(shí)有個(gè)服務(wù)可以安裝。之前數(shù)據(jù)庫 mysql、oracle、sql server 這些需要跑起來,不都是本地安裝個(gè)服務(wù)么。
仔細(xì)想想,不對(duì),我這個(gè)客戶端項(xiàng)目,將來是要給用戶使用的,不能說讓用戶都安裝個(gè) sqlite 吧。
于是網(wǎng)上找找解決辦法吧,找到了一篇,這哥們折騰了4天,有興趣的可以看看。
ElectronJs: please install sqlite3 package manually
我按照這位大哥的指導(dǎo),走到 Step9 的時(shí)候,卡住了。錯(cuò)誤如下截圖,意思就是我缺少 C++ 環(huán)境,提示讓我安裝 Visual Studio。
好,于是去官網(wǎng)下載,安裝,最新版 2019 可以了吧。
沒想到,Visual Studio 2019是自定義安裝,默認(rèn)就安裝一個(gè)核心,需要做什么開發(fā)就選擇安裝對(duì)應(yīng)的依賴,沒搞過這個(gè),真不知道怎么選。全選是不可能的,太大了,幾十個(gè) GB。
那就嘗試吧。
桌面、Web、http://Asp.net 挨個(gè)試,還好網(wǎng)速快,不然安裝就是個(gè)半天。但是,始終就是編譯不過,錯(cuò)誤一如既往的顯示上圖。
我都想放棄了,手寫 sql 算了,想想又不能放棄啊,搞了兩天,一行代碼還沒寫呢。
于是,決定再試半天吧,終于找到了。
二、解決辦法
項(xiàng)目中需要增加 sequelize 和 sqlite3 的依賴和上面的折騰一樣,install 就行了。
Step 1:管理員權(quán)限啟動(dòng) cmd 或者 power shell,執(zhí)行
$ npm install --vs2015 -g windows-build-tools安裝過程有點(diǎn)慢,請(qǐng)耐心等候。
Step 2:項(xiàng)目中添加 electron-rebuild 依賴
$ npm install electron-rebuild --save-devStep 3:項(xiàng)目 package.json 中 scripts 添加 rebuild
"scripts": {"start": "electron .","rebuild": "electron-rebuild -f -w sqlite3"}Step 4:執(zhí)行
$ npm run rebuild如果都提示正確,就搞定了,后面就是寫個(gè)數(shù)據(jù)庫驗(yàn)證的代碼,通過后就開始寫 CRUD 的代碼了。
PS:搞 Nodejs 開發(fā),最好是提前安裝好 Python環(huán)境,并且保證命令行可以成功執(zhí)行 Python命令,最新版的 3 就可以,現(xiàn)在 Nodejs 的包都很多依賴著 Python 和 C++。
總結(jié)
以上是生活随笔為你收集整理的electron sqlite3_electron集成sqlite3,win10上折腾了2天的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓导航汽车启动后开机很慢怎么解决(安卓
- 下一篇: arrays中copyof复制两个数组_