electron使用better-sqlite3打包失败(electron打包有进程没有界面)

文章讲述了在使用better-sqlite3库打包Electron应用时遇到无界面进程的问题,通过添加日志、检查依赖安装和配置,作者分享了排查并解决这个问题的方法,包括设置日志级别、关键代码段加try-catch以及区分开发和生产依赖。
摘要由CSDN通过智能技术生成

remove *\chrome_100_percent.pak: Access is denied.

解决: 管理员权限执行:taskkill /IM 你的进程名.exe /F,再次执行build

electron使用better-sqlite3打包后有进程没有界面

原因是代码及依赖包安装有误,模块丢失。主要分享的是排查思路。

解决过程
  1. 添加日志模块,去关键地方找问题
const log = require('electron-log')
const { app } = require('electron')

log.transports.file.level = 'info'
log.transports.console.level = 'info'
  1. 关键地方添加try-catch
try {
  this.db = new sqlite3(name === '' || name === undefined ? this.dbName : name)
  this.db.pragma('journal_mode = WAL')
} catch (error) {
  logger.warn(`sqlite init fail, ${error}`)
}
  1. 如果使用better-sqlite3模块需要安装如下两个依赖
pnpm install bindings file-uri-to-path --save
  1. 检查那些依赖是开发模式用的那些是生产模式用的

我的依赖如下:

"dependencies": {
    "better-sqlite3": "^9.1.1",
    "electron-log": "^5.0.0",
    "iconv-lite": "^0.6.3"
  },
  "devDependencies": {
    "@rushstack/eslint-patch": "^1.3.3",
    "@tsconfig/node18": "^18.2.2",
    "@types/node": "^18.18.8",
    "@vicons/ionicons5": "^0.12.0",
    "@vitejs/plugin-vue": "^4.4.0",
    "@vue/eslint-config-prettier": "^8.0.0",
    "@vue/eslint-config-typescript": "^12.0.0",
    "@vue/tsconfig": "^0.4.0",
    "bindings": "^1.5.0",
    "electron": "21.4.4",
    "electron-builder": "23.6.0",
    "electron-rebuild": "^3.2.9",
    "eslint": "^8.49.0",
    "eslint-plugin-vue": "^9.17.0",
    "file-uri-to-path": "^2.0.0",
    "idb": "^7.1.1",
    "less": "^4.2.0",
    "less-loader": "^11.1.3",
    "naive-ui": "^2.35.0",
    "npm-run-all2": "^6.1.1",
    "pinia": "^2.1.7",
    "prettier": "^3.0.3",
    "safer-buffer": "^2.1.2",
    "tree-kill": "^1.2.2",
    "typescript": "~5.2.0",
    "unplugin-auto-import": "^0.16.7",
    "unplugin-vue-components": "^0.25.2",
    "vfonts": "^0.0.3",
    "vite": "^4.4.11",
    "vite-plugin-electron": "^0.15.4",
    "vite-plugin-electron-renderer": "^0.14.5",
    "vue": "^3.3.8",
    "vue-router": "4",
    "vue-tsc": "^1.8.19"
  },
  1. 查看日志文件

日志文件一般在appData/roaming目录下,envtools是我的项目名

最后分享一下我的成果

原文地址

electron使用better-sqlite3打包失败(electron打包有进程没有界面)-小何博客

Electron-packager 是一个用于将 Electron 应用程序打包为可执行文件的工具。使用它可以将你的 Electron 项目构建为各个操作系统(如 Windows、Mac 和 Linux)的独立应用程序。 以下是使用 electron-packager 打包整理 Electron 应用程序的步骤: 1. 首先,确保你已经在项目中安装了 electron-packager。可以通过运行以下命令进行安装: ``` npm install electron-packager --save-dev ``` 2. 在项目的根目录下,创建一个打包脚本(例如 package.js),并将以下代码添加到文件中: ```javascript const packager = require('electron-packager'); const options = { // 你的应用程序的根目录 dir: '.', // 应用程序的平台(例如:darwin、win32、linux) platform: 'PLATFORM', // 应用程序的架构(例如:ia32、x64、armv7l) arch: 'ARCH', // 应用程序输出的目录 out: 'BUILD_FOLDER', // 应用程序的名称 name: 'APP_NAME', // 应用程序的可执行文件名 executableName: 'EXECUTABLE_NAME', // 其他选项... }; packager(options) .then(appPaths => { console.log('应用程序已成功打包到以下路径:', appPaths); }) .catch(err => { console.error('应用程序打包失败:', err); }); ``` 请根据你的项目需求修改上述代码中的选项。 3. 在终端或命令提示符中运行以下命令,以执行打包脚本: ``` node package.js ``` 这将使用 electron-packager 打包整理你的 Electron 应用程序。打包成功后,应用程序将被输出到指定的输出目录。 请注意,根据你的操作系统,需要设置正确的平台和架构参数。例如,对于 Windows 平台,platform 参数应设置为 'win32',arch 参数应设置为 'ia32' 或 'x64'。 希望这些步骤能够帮助你使用 electron-packager 打包整理你的 Electron 应用程序。如果有任何其他问题,请随时提问!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值