refactor: 数据库层从 better-sqlite3 迁移到 sql.js (WASM)

- 替换原生依赖 better-sqlite3 为纯 WASM 的 sql.js,消除 Electron ABI 版本不匹配问题
- 新增 sql.js 兼容层:runExec/queryOne/queryAll/runPragma/runTransaction
- initDatabase() 改为异步(WASM 加载需要)
- 每次写操作后自动 persist() 到磁盘
- electron-builder 配置:extraResources 打包 sql-wasm.wasm
- 移除 @electron/rebuild 依赖和 postinstall 脚本
- 设置 npmRebuild: false(不再需要原生模块重编译)
This commit is contained in:
thzxx
2026-04-17 16:26:53 +08:00
parent ba03b31677
commit 16266ebdde
4 changed files with 184 additions and 91 deletions
+9 -7
View File
@@ -14,8 +14,7 @@
"start": "npm run build && electron . --no-sandbox",
"pack": "npm run build && electron-builder --dir",
"dist": "npm run build && electron-builder --win",
"dist:nsis": "npm run build && electron-builder --win nsis",
"postinstall": "electron-rebuild --version 33.4.11 || true"
"dist:nsis": "npm run build && electron-builder --win nsis"
},
"build": {
"appId": "com.metona.ollama-desktop",
@@ -23,13 +22,18 @@
"directories": {
"output": "release"
},
"npmRebuild": true,
"buildDependenciesFromSource": true,
"npmRebuild": false,
"files": [
"dist/**/*",
"assets/**/*",
"!node_modules/**/*"
],
"extraResources": [
{
"from": "node_modules/sql.js/dist/sql-wasm.wasm",
"to": "sql-wasm.wasm"
}
],
"win": {
"target": [
{
@@ -54,7 +58,6 @@
}
},
"devDependencies": {
"@electron/rebuild": "^3.7.1",
"@types/node": "^20.17.0",
"electron": "^33.4.11",
"electron-builder": "^25.1.8",
@@ -62,7 +65,6 @@
"vite": "^5.4.0"
},
"dependencies": {
"@types/better-sqlite3": "^7.6.13",
"better-sqlite3": "^12.9.0"
"sql.js": "^1.11.0"
}
}