electron应用开发进度

electron应用开发进度

Scroll Down

简单介绍

目前使用的是electron-prokit框架整合了antd,react-router进行前端开发,然后包在electron的壳里。主进程可以简单看成BFF(backend for frontend),因为prokit内构的db读写只能存kv数据。满足不了复杂的结构化数据的CRUD,所以需要参考nodejs的技术栈整合typeorm和better-sqlite3进行本地的数据存储与读写。

构建时遇到的坑

  1. typeorm和better-sqlite3都属于node native 模块,整合到electron中后会有node版本问题,兼容下问题,需要使用electron-rebuild重新构建
  2. electron-prokit的所有文件都是使用vite编译到目标的cjs文件的,所以启动时报错:typeorm找不到driver的情况。

解决方案

对于1,需要再vite config中做一些修改:
image
来让vite不处理这两个模块使得能正常调用。

对于2,则需要在执行tyarn后(即npm i)后自动rebuild一下。这里对package.json进行了一些修改:

  • 升级了electron到27,26和better-sqlite3 有不兼容情况,导致应用crash - -
    image-1712072855744

  • 添加了两行脚本命令使得yarn or npm在安装完依赖后,自动rebuild
    image-1712072900232

主要还是我懒,不想每次安装后执行.\node_modules\.bin\electron-rebuild.cmd

具体的地址在:https://github.com/nolaurence/testing-standardization