仔細閱讀我說的每一個字,要不然你可能會安裝不成功。
以下是我解決安裝sqlite3數據庫的所有操作步驟,前提是,我的電腦已經裝有Python3.5和vs2018了。我不知道安裝這個sqlite會不會和這個有關,在我查找解決問題的時候,很多博客都提醒要安裝,我也不知道要不要安裝,如果你一下步驟你沒有安裝成功,那就可以參考安裝一下Python和vs。
1、在操作sqlite3數據庫之前你要有一個能運行的electron Demo。如果沒有請參考我的這篇文章。
2、在項目的根目錄下運行(cmd最好都是用管理員命令打開的)
npm install sqlite3 --save
目錄結構如下:

2、安裝以后,發現Electron不能正常使用,會報出很多錯誤,比如缺少sqlite3模塊,找不到,但是明明裝了,這里需要對Sqlite3單獨編譯。

原因是:通過npm安裝的sqlite3模塊只實現了對node.js原生環境的支持,如果electron需要使用的話必須對其進行二次編輯。
首先進入到安裝好的模塊sqlite3目錄下
cd .\node_modules\sqlite3
運行一下命令:
1 //先運行第一步 2 npm install nan --save 3 //成功在運行這一步 4 npm run prepublish
如果run失敗(就是運行npm run prepublish)可以跳過
3、接下來再執行
node-gyp configure --module_name=node_sqlite3 --module_path=../lib/binding/electron-v1.4-win32-x64
node-gyp rebuild --target=1.4.13 --arch=x64 --target_platform=win32 --dist-url=https:
//atom.io/download/electron/ --module_name=node_sqlite3 --module_path=../lib/binding/electron-v1.4-win32-x64
操作注意 一定得看:
第三步標紅的代碼一定要注意,這個path后面的路徑一定要和你調試器內報錯的信息一樣,我之前安裝失敗報的錯,這個錯(第2步)是我在網上找的別人的一個,作為參考。但是錯誤類型都是一樣的,只是后面划紅線的地方不一樣,你在path后面那個路徑改成你自己報錯顯示的路徑即可。
另外 以上命令行是編譯的關鍵,–target代表electron的版本號,不是package.json的electron版本號,訪問https://npm.taobao.org/mirrors/atom-shell,查看最新的版本並將其設為target即可;–arch是cpu的位數;–dist-url指定了electron header的下載來源,像之前說的一樣,如果你的外網訪問速度很快,使用【https://atom.io/download/electron/】也可以。另外注意,path一定要一致。
4、如果你在執行第三步的時候報:
node-gyp不是內部命令,那就是說明,你沒有安裝node-gyp
4.1安裝node-gyp
npm install -g node-gyp
4.2 然后必須以管理員身份運行powershell或者cmd否則以下指令會報錯(我上面說了 你最好每一個cmd都是用管理員的身份打開,以免產生不必要的麻煩)
npm install --global --production windows-build-tools
4.3安裝成功后再去執行第3步。
5、完畢后再運行【npm run dev】,測試sql語句,這樣應該就沒問題了。
二、操作sqlite數據庫;
在項目中隨便創建一個js文件(sqlite3Db.js),里面代碼如下:
1 // src/renderer/utils/db.js 2 // 建表腳本,導出db對象供之后使用 3 import path from 'path'; 4 import sq3 from 'sqlite3'; 5 // import { docDir } from './settings'; 6 // 將數據存至系統用戶目錄,防止用戶誤刪程序 7 export const dbPath = path.join("F:\\vsCode_Homework\\test01", 'data.sqlite1'); 8 9 const sqlite3 = sq3.verbose(); 10 const db = new sqlite3.Database(dbPath); 11 db.serialize(() => { 12 13 db.run("create table test(name varchar(15))",function(){ 14 db.run("insert into test values('hello,word')",function(){ 15 db.all("select * from test",function(err,res){ 16 if(!err){ 17 console.log(JSON.stringify(res)); 18 } 19 else{ 20 console.log(err); 21 } 22 }); 23 }); 24 }); 25 26 27 }); 28 29 export default db;
然后在渲染進程中引用js
import sqlite3Db from '@/components/js/sqlite3Db'
運行electron,在調試器查看console輸出
npm run dev
完工。
