差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
开发手册:启动器:home [2017/02/17 02:11] – 蛋散 | 开发手册:启动器:home [2017/03/27 15:38] (当前版本) – [技术要求] 蛋散 | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== | + | ====== |
===== 技术要求 ===== | ===== 技术要求 ===== | ||
- | 参与启动器开发,可能需要你掌握下面的技术 | + | 参与客户端开发,可能需要你掌握下面的技术 |
- | - JavaScript | + | |
- nodejs | - nodejs | ||
- vue | - vue | ||
- | - html | ||
- electron | - electron | ||
- typescript | - typescript | ||
+ | - JavaScript (ES6) | ||
+ | - gulp | ||
- | 如果你需要构建windows包,你需要windows | + | ===== 架构图 ===== |
+ | {{: | ||
- | 如果你需要构建macos包,你需要macos | + | ==== 简单用文字叙述 ==== |
+ | 客户端分为两个部分,安装器和启动器 | ||
- | 本项目采用electron开发,使用electron-packager打包,具体用法请查阅它们的github文档 | + | 下文中启动器的asar包简称为“启动器” |
+ | |||
+ | 安装器构建出来为二进制程序包,分为windows和macos两种平台 | ||
+ | |||
+ | 安装器其实是作为了启动器的“**运行壳子**”,用户在运行安装器之后,安装器会检查在当前用户电脑上是否已经安装过启动器,如果没有,就先检查自己有没有更新,如果有,就自动下载并指导用户替换掉旧版的安装器文件。如果自己为最新,那么就去下载最新版本的启动器,下载完成后,通过重启从而直接运行启动器中的js代码,将程序控制权**转交**给启动器。 | ||
+ | |||
+ | 可以看出来,安装器只负责在首次运行的时候检查自身更新和下载最新的启动器,当用户机器上已经安装有启动器的时候(**无论安装器自己和当前安装的这个启动器是不是最新的**),就直接运行启动器中的代码,将**运行权转交**。 | ||
+ | |||
+ | 这么做是为了尽量减少安装器内部的代码逻辑,让大部分代码处于可以通过自动下载asar包并自动执行更新的状态(**仅仅几M流量**)。在运行权转交给启动器后,检查更新的任务就交给了启动器,安装器不再执行任何代码。 | ||
+ | |||
+ | 那么如果你需要构建windows包,你需要装有windows的电脑 | ||
+ | |||
+ | 那么如果你需要构建macos包,你需要装有macos的电脑 | ||
===== 开发项目 ===== | ===== 开发项目 ===== | ||
- | 首先,从git上clone下本项目的开发分支 | ||
- | 然后,安装所有依赖 | + | 全局安装下面的依赖,可能需要管理员权限 |
<code shell> | <code shell> | ||
- | npm install | + | npm install |
+ | npm install typescript -g | ||
+ | npm install babili -g | ||
+ | npm install gulp -g | ||
</ | </ | ||
- | 注意,下面的依赖需要**全局**安装,可能需要管理员权限 | + | |
+ | |||
+ | |||
+ | 然后,从git上clone下安装器和启动器的分支 | ||
+ | |||
+ | 然后,安装所有依赖 | ||
<code shell> | <code shell> | ||
- | npm install | + | npm install |
- | npm install typescript -g | + | |
</ | </ | ||
- | 如果你熟悉typescript,那么下面的这段有关typescript的部分你可以忽略 | + | **下面是一些可能用到的指令** |
- | <color # | + | 自动编译文件 |
<code shell> | <code shell> | ||
- | tsc | + | gulp watch |
</ | </ | ||
- | <color # | ||
- | 现在,你可以运行项目了 | + | 运行项目(调试) |
<code shell> | <code shell> | ||
- | npm start | + | npm run start |
</ | </ | ||