(1). 编程语言Typescript:


(2). 构建工具Electron-Forge:

①. Electron-Forge:
    a. 简单而又强大
    b. 目前electron应用最好的构建工具之一

②. electron-builder和electron-forge的区别:
    a. 两者最大的区别在于自由度
    b. 官方组织中的排序看,有意优先推荐electron-forge

(3). Web方案Vue3 + Vite:


(4). monorepo方案pnpm + turbo:

①. monorepo技术选型上:
    a. pnpm擅长依赖管理:
       (1). 相比于vue官网,在使用pnpm上,加了workspace
    b. turbo擅长构建任务编排

②. pnpm:
    a. pnpm吸收了npm、yarn、lerna等主流工具的精华
    b. 结合workspace可以完成monorepo最佳设计和实践
    c. 可管理多项目的包依赖、代码风格、代码质量、组件库复用等场景
    d. 在框架、库的开发、调试、维护方面出色

③. turbo:
    a. 一个高性能构建系统,拥有增量构建、云缓存、并行执行、运行时零开销、任务管道、精简子集等特性
    b. 具有非常优秀的任务编排能力,可以弥补pnpm在任务编排上的短板

(5). 数据库lowdb:

①. electron应用数据库:
    a. 如lowdb、sqlite3、electron-store、pouchdb、dedb、rxdb、dexie、ImmortalDB 
    b. 特性:无服务器

②. 选型考虑因素:
    a. 生态(使用者数量、维护频率、版本稳定度)
    b. 能力
    c. 性能
    d. 相关调研:
       (1). github的issues、commit、fork、star
       (2). sourcegraph关键字搜索结果数
       (3). npm包下载量、版本发布
       (4). 官网和博客

③. 理由:
    a. lowdb(推荐):
       (1). 生态、能力、性能三方面表现优秀
       (2). json形式的存储结构
       (3). 支持lodash、ramda等api操作,利于备份和调用
    b. sqlite3:
       (1). 生态、能力、性能三方面表现优秀
       (2). Nodejs关系型数据库第一选择方案
    c. nedb:
       (1). 能力、性能三方面表现优秀
       (2). 缺点是基本不维护了
       (3). 操作是MongoDB的子集
    d. electron-store:
       (1). 生态表现优秀,轻量级持久化方案

(6). 脚本工具:

①. 将一些流程和操作通过脚本来完成

②. 依赖node runtime的优秀库:
    a. shelljs和zx

③. zx:
    a. 自带fetch、chalk等常用库
    b. 多个子进程方便快捷、执行远端脚本、解析md、xml文件脚本、支持ts
    c. 谷歌出品