Manning.Electron.in.Action
By admin
《manning electron in action》
electorn的优势
集成最新的chromium,不用被浏览器兼容性托后腿
可同时访问浏览器与本地api,没有任何浏览器开发程序的限制
主要特性
分为主进程与0个或多个renderer进程
学的时候正赶上electron7的安装bug,由于配置了内网远程安装路径上少了个v,总是安装失败
后来自己在node_modules/@electron/get中自己改了一下代码去掉路径中的v,然后再手动执行node node_modules/electron/install.js。
这个bug在cnpm的issues中已经有人提了,之后不久应该会有修正。
前几章用存储并展示markdown文件与操作clipboard的小例子讲解了main与renderer之间如何通信。
但目前版本中在renderer进程中目前已经默认关闭了nodeIntegretion。
比较好的方式是在创建BrowserWindow的时候使用参数,使用
{
webPreferences: {
preload: __dirname + ‘./preload.js’,
}
}
在指定的preload.js中将ipc模块负值到全局window上。
前面的例子都是比较原始的开发流程,开发,编译,看看效果
直到第11章,引入了其他类型脚本编译,开发环境livereload,开始精彩起来,示例工程为Jetsetter,一个管理收拾履行物品打包的小应用。
13章,测试,使用spectron,底层仍然调用selenium,selenium用过当时感觉api不太友好没太深入。
不过spectron里面可以使用async await,和puppeteer非常像,比较友好,而且更好的是可以直接访问ui层,这个比puppeteer好像还强点
不知道在当今是否可以与puppeteer结合
说到底spectron仍然是黑盒测试,而非单元测试。
14章 打包
electron-packager 与 electron-forge
15章
错误收集,使用 minidump读取错误二进制文件
程序内更新升级,这个功能封装的很方便。
16章 发布苹果的app store,呃,没苹果产品,跳过
appendix
之前的所有例子详解