PicGo代码结构分析

main进程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
├─apis
│ ├─app 【Provide key API interfaces for PicGo application, including uploader, window management, shortcut key system, remotes handler, etc】
│ │ ├─shortKey 快捷键相关
│ │ ├─system 封装createMenu/createContextMenu/createTray等内容(⭐主入口)
│ │ ├─uploader 上传图片的相关内容
│ │ └─window
│ │ ├─contants.ts 一些常量,存放window的地址(根据是否是开发环境选择)
│ │ ├─windowList.ts 用Map来声明window列表
│ │ └─windowManager.ts 管理window列表
│ ├─core 【The lowest level APIs that are not dependent on each other. The upper APIs depend on them.】
│ │ ├─bus
│ │ ├─datastore 数据库路径相关配置
│ │ ├─picgo 获取picgo整体的配置及日志
│ │ └─utils 日志
│ └─gui 【GuiApi for PicGo plugins.】
├─events
│ ├─remotes
│ │ └─menu.ts
│ ├─busEventLists.ts
│ ├─ipcList.ts ipc事件管理
│ └─picgoCoreIPC.ts
├─lifeCycle 一些错误处理?
├─migrate
├─server 处理一些httpServer相关内容,router等
└─utils

renderer进程

1
2
3
4
5
6
7
8
9
10
├─assets
│ └─fonts
├─components 页面部件(子页面?)
├─layouts 主要框架
├─pages
│ └─picbeds 页面
├─router 路由
├─store 框架自带
│ └─modules
└─utils

另外还有一个universal的文件加存放一些全局通用的常量和接口

项目代码重构

考虑到短期内的功能和目前的需求,主要将窗口和事件监听等主要功能先拆分出来

目前重构后的代码结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
├─main
│ ├─core 核心功能
│ ├─events 事件监听
│ ├─store 配置存储
│ └─window 窗口管理
└─renderer
├─assets
├─components 主要页面
│ └─Entry
├─router 路由
└─store
└─modules