(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. 谷歌出品