You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用electron-builder打包Electron应用exe后sqlite3运行报错求助

Electron打包exe后sqlite3运行报错的解决方案

核心原因

sqlite3是原生Node.js模块,默认安装时会针对系统Node.js版本编译二进制文件,但Electron内置的Node.js版本与系统版本存在差异,导致打包后运行时出现版本不兼容的报错。

解决步骤

1. 统一Electron版本

你的package.json中devDependencies里的electron版本为^29.0.0,但build配置里指定的electronVersion是29.1.4,版本不一致会导致编译不匹配,先统一版本:

  • 修改devDependencies中的electron版本:
    "devDependencies": {
      "electron": "29.1.4",
      "electron-builder": "^24.13.3",
      "electron-rebuild": "^3.2.9"
    }
    
  • 删除现有依赖文件并重新安装:
    rm -rf node_modules package-lock.json
    npm install
    

2. 强制重建sqlite3的Electron适配版本

使用electron-rebuild针对当前Electron版本重新编译sqlite3:

npx electron-rebuild -f -w sqlite3
  • -f:强制覆盖现有编译产物
  • -w:仅针对sqlite3模块执行重建

3. 配置electron-builder确保原生模块被正确打包

在build配置中添加files和extraResources,保证sqlite3的二进制文件被完整包含到打包产物中:

"build": {
  "appId": "com.example.shadow-labyrinth",
  "win": {
    "target": "nsis"
  },
  "linux": {
    "target": "AppImage",
    "category": "Utility"
  },
  "mac": {
    "target": "dmg",
    "category": "public.auxWall.services"
  },
  "directories": {
    "output": "dist",
    "buildResources": "build"
  },
  "electronVersion": "29.1.4",
  "files": [
    "**/*",
    "node_modules/sqlite3/**/*"
  ],
  "extraResources": [
    {
      "from": "node_modules/sqlite3/lib/binding/",
      "to": "node_modules/sqlite3/lib/binding/",
      "filter": ["**/*"]
    }
  ]
}

4. 修正代码中sqlite3的路径引用

确保代码中加载sqlite3或数据库文件的路径基于Electron应用根目录,避免打包后路径失效:

const { app } = require('electron');
const path = require('path');
const sqlite3 = require('sqlite3').verbose();

// 拼接正确的数据库文件路径
const dbPath = path.join(app.getAppPath(), 'your-db-file.db');
const db = new sqlite3.Database(dbPath);

5. 手动指定编译参数安装sqlite3(可选)

如果上述步骤无效,可直接在安装sqlite3时指定Electron编译参数:

npm install sqlite3 --build-from-source --runtime=electron --target=29.1.4 --dist-url=https://electronjs.org/headers

验证

重新执行打包命令:

npx electron-builder build --win

运行打包后的exe文件,检查报错是否消失。

内容的提问来源于stack exchange,提问作者AnthonyToons

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 15:45:00