Skip to content

Latest commit

 

History

History
79 lines (70 loc) · 4.69 KB

开发说明.md

File metadata and controls

79 lines (70 loc) · 4.69 KB

开发说明

  1. 项目使用 yarn 进行开发, 方便配置各种代理(已配置在.yarnrc 中).
  2. node 版本必须为 node16.14.2
    1. Electron 版本必须和环境中的 node 版本一致, 才能正常编译 sqlite
      1. 目前使用的是 [email protected], 自带 node 为 16.14.2, 因此要求环境 node 也需要为 16.14.2
  3. 建议只开发命令版
    1. 使用yarn ace启动
  4. GUI 版需要为 Electron 编译 sqlite3, 非常麻烦, 不建议尝试
    1. 流程
      1. Windows 用户
        1. 安装VS 2019 社区版, 社区版免费下载. Windows 下为 Electron 编译 sqlite3 需要 VS 提供的构建工具
        2. 启动 VS, 选择工具-获取工具和功能
        3. 勾选使用C++的桌面开发-MSVC v140 - VS 2015 C++生成工具(v14.00), 安装即可
        4. 好了一个小时过去了
        5. 执行pip install setuptools, 安装setuptools解决No module named 'distutils'问题
        6. 执行 npm run rebuild-sqlite3, 编译完成 sqlite3 之后, 就可以启动 GUI 界面了
        7. 特别说明: 这套流程只适合纯净环境, 如果是Electron@4升级到Electron@6, 再编译会编译不过去(会有 v4 的编译残留), 将整个node_modules目录删除后重新install即可
      2. Mac 用户
        1. 正常npm install即可, 注意安装puppeteerelectron本身非常耗时, 需要使用淘宝源进行下载--registry=https://registry.npm.taobao.org/
    2. 注意:
      1. 打包时会向 dist 目录中复制一份 node_modules 目录, 导致 npm run 时优先从 dist 中获取 node_module 信息, 导致无法启动
        1. 因此, 打包结束后需要将 dist 里的 node_modules 目录删掉, 以免影响后续开发工作
  5. 电子书封面分辨率为: 100 * 130(宽*高)

commit 信息规范

关键字 功能
feat 添加新功能
format 调整代码格式
fix 修复错误
doc 修订文档/注释

代码规范

  1. 变量命名规范
    1. 类型统一使用 namespace 方式声明, 导入时使用Type + xxx形式进行导入
    2. Model 导入时统一使用M + xxx形式进行导入
    3. View 导入时统一使用View + xxx形式进行导入
    4. Util 工具函数导入时统一使用xxx + Util形式进行导入
    5. async 函数前统一添加async前缀, 以和正常函数进行区分
  2. 文件命名规范
    1. 统一使用下划线方式命名

基本思路

  1. TypeScript 提供类型支持, 在编写代码时可以自动提示变量下的属性
  2. Electron 提供图形界面, 利用 webview 标签直接登录微博
  3. 利用微博接口抓取数据
  4. ace/command 提供命令行支持
  5. sqlite3 提供数据库支持
  6. 图形界面使用 React 编写.
    1. 基于immer & Hooks 进行状态管理

实现方式

  1. 将电子书制作分为以下三步
    1. 初始化环境 => 对应于npm run ace Init:Env命令
    2. 抓取指定内容 => 对应于npm run ace Fetch:XXX系列命令, 目前支持Column/Author/Activity/Collection/Topic
    3. 从数据库中获得数据, 生成指定内容电子书 => 对应于npm run ace Generate:XXX系列命令, 目前支持Column/Author/Activity/Collection/Topic
    4. 因此, 实际任务流程就是根据用户输入 url, 生成对应命令配置, 不断执行命令即可
  2. 项目开发流程
    1. npm run watch 启动监控, 将ts自动编译为js文件
    2. npm run startgui, 启动前端界面(vue 项目, 基于 Element-UI 简单构建)
    3. 执行npm run start, 以调试模式启动 Electron
      1. 前端点击开始任务按钮后, 将任务配置写入task_config_list.json, 再由 Electron 收集登录后产生的微博 cookie, 存入config.json文件中, 随后启动Dispatch:Command命令, 开始执行任务
  3. 项目发布
    1. 执行npm run dist
    2. github
      1. 在 master 分支上打 tag 并 push 后即触发 github action 的自动构建流程
      2. 示例:
        1. windows => git tag 3.3.0-v11 ; git push --tags
        2. linux => git tag 3.3.0-v11 && git push --tags
  4. 注意事项
    1. Electron 需要编译 sqlite3 后才能启动, 不容易搞, 建议直接使用npm run ace命令行方式进行调试
    2. 本地 Node 版本要与 Electron 主版本一致(目前 [email protected] 对应于 [email protected])
    3. 使用 6.0.12 版本, 以直接使用 sqlite3 提供的官方 npm 包, 绕过本地编译流程
    4. 命令使用说明详见代码