- 项目使用 yarn 进行开发, 方便配置各种代理(已配置在.yarnrc 中).
- node 版本必须为 node16.14.2
- Electron 版本必须和环境中的 node 版本一致, 才能正常编译 sqlite
- 目前使用的是 Electron@19.0.10, 自带 node 为 16.14.2, 因此要求环境 node 也需要为 16.14.2
- Electron 版本必须和环境中的 node 版本一致, 才能正常编译 sqlite
- 建议只开发命令版
- 使用
yarn ace启动
- 使用
- GUI 版需要为 Electron 编译 sqlite3, 非常麻烦, 不建议尝试
- 流程
- Windows 用户
- 安装VS 2019 社区版, 社区版免费下载. Windows 下为 Electron 编译 sqlite3 需要 VS 提供的构建工具
- 启动 VS, 选择
工具-获取工具和功能 - 勾选
使用C++的桌面开发-MSVC v140 - VS 2015 C++生成工具(v14.00), 安装即可 - 好了一个小时过去了
- 执行
pip install setuptools, 安装setuptools解决No module named 'distutils'问题 - 执行
npm run rebuild-sqlite3, 编译完成 sqlite3 之后, 就可以启动 GUI 界面了 - 特别说明: 这套流程只适合纯净环境, 如果是
Electron@4升级到Electron@6, 再编译会编译不过去(会有 v4 的编译残留), 将整个node_modules目录删除后重新install即可
- Mac 用户
- 正常
npm install即可, 注意安装puppeteer和electron本身非常耗时, 需要使用淘宝源进行下载--registry=https://registry.npm.taobao.org/
- 正常
- Windows 用户
- 注意:
- 打包时会向 dist 目录中复制一份 node_modules 目录, 导致 npm run 时优先从 dist 中获取 node_module 信息, 导致无法启动
- 因此, 打包结束后需要将 dist 里的 node_modules 目录删掉, 以免影响后续开发工作
- 打包时会向 dist 目录中复制一份 node_modules 目录, 导致 npm run 时优先从 dist 中获取 node_module 信息, 导致无法启动
- 流程
- 电子书封面分辨率为: 100 * 130(宽*高)
| 关键字 | 功能 |
|---|---|
| feat | 添加新功能 |
| format | 调整代码格式 |
| fix | 修复错误 |
| doc | 修订文档/注释 |
- 变量命名规范
- 类型统一使用 namespace 方式声明, 导入时使用
Type + xxx形式进行导入 - Model 导入时统一使用
M + xxx形式进行导入 - View 导入时统一使用
View + xxx形式进行导入 - Util 工具函数导入时统一使用
xxx + Util形式进行导入 - async 函数前统一添加
async前缀, 以和正常函数进行区分
- 类型统一使用 namespace 方式声明, 导入时使用
- 文件命名规范
- 统一使用下划线方式命名
- TypeScript 提供类型支持, 在编写代码时可以自动提示变量下的属性
- Electron 提供图形界面, 利用 webview 标签直接登录微博
- 利用微博接口抓取数据
- ace/command 提供命令行支持
- sqlite3 提供数据库支持
- 图形界面使用 React 编写.
- 基于immer & Hooks 进行状态管理
- 将电子书制作分为以下三步
- 初始化环境 => 对应于
npm run ace Init:Env命令 - 抓取指定内容 => 对应于
npm run ace Fetch:XXX系列命令, 目前支持Column/Author/Activity/Collection/Topic - 从数据库中获得数据, 生成指定内容电子书 => 对应于
npm run ace Generate:XXX系列命令, 目前支持Column/Author/Activity/Collection/Topic - 因此, 实际任务流程就是根据用户输入 url, 生成对应命令配置, 不断执行命令即可
- 初始化环境 => 对应于
- 项目开发流程
npm run watch启动监控, 将ts自动编译为js文件npm run startgui, 启动前端界面(vue 项目, 基于 Element-UI 简单构建)- 执行
npm run start, 以调试模式启动 Electron- 前端点击
开始任务按钮后, 将任务配置写入task_config_list.json, 再由 Electron 收集登录后产生的微博 cookie, 存入config.json文件中, 随后启动Dispatch:Command命令, 开始执行任务
- 前端点击
- 项目发布
- 执行
npm run dist - github
- 在 master 分支上打 tag 并 push 后即触发 github action 的自动构建流程
- 示例:
- windows =>
git tag 3.3.0-v11 ; git push --tags - linux =>
git tag 3.3.0-v11 && git push --tags
- windows =>
- 执行
- 注意事项
- Electron 需要编译 sqlite3 后才能启动, 不容易搞, 建议直接使用
npm run ace命令行方式进行调试 - 本地 Node 版本要与 Electron 主版本一致(目前 Electron@8.5 对应于 node@12.13.0)
- 使用 6.0.12 版本, 以直接使用 sqlite3 提供的官方 npm 包, 绕过本地编译流程
- 命令使用说明详见代码
- Electron 需要编译 sqlite3 后才能启动, 不容易搞, 建议直接使用