前端邓浩 - electron
type: channel
link: https://www.denghao.me/index.php/tag/electron/
items: 基于Electron的“小鱼照片翻新”桌面版完工
items: 前端项目集成工具 ProjectHub

基于Electron的“小鱼照片翻新”桌面版完工
type: item
date: 2024-09-11T18:11:00+08:00
description: 一、背景Electron对于Web前端开发者来说是真是进入桌面应用开发的极佳切入点。官方宣称以下应用均由其开发：1Password、GitHub Desktop、Postman、Visual Studio Code、WhatsApp、Discord... 可见，这么一个上限高下限低的开发平台，赢得了不少开发者的喜爱。接上篇《微信小程序“小鱼照片翻新”上线了》，本文再简单地记录一下基于Electron开发的“小鱼照片翻新”桌面版。二、效果预览不同于小程序版受远程服务器性能及带宽限制，桌面版可以充分发挥本地电脑性能，实现批量处理。实测用我的阵年老主机（AMD锐龙3+集显）的配置，单个任务处理时间也能缩短1/2。三、开发感受开发桌面应用和开发浏览器扩展的感受相当接近，在功能上都是对web浏览器限制的突破，在实现上都是Native API + 浏览器chromium混合开发，在架构上都是主进程和渲染进程分离。（待续...）

前端项目集成工具 ProjectHub
type: item
date: 2017-05-20T21:01:00+08:00
description: ProjectHub （项目已停止维护）下载地址：http://pan.baidu.com/s/1mi4w4wK源码地址：https://github.com/denghao123/ProjectHub工作中有时需要在多个项目间游走，一直想做个桌面程序来集成，正好前两天看到张鑫旭文章提到的electron，刚好是我想要的，于是折腾了两天做了这个东西，目前实现了项目集中管理、运行、打包等常用操作。自用一个月，感觉挺实用的，欢迎大家下载来试试，有什么建议或bug，请在下面留言。2017.7.9 记：作了交互的调整，把不常用的功能(如删除、编辑、复制)隐藏到'更多'里；直接点击项目空白处，可打开文件当前位置。2017.7.8 记：log窗口从之前的滑过变大，改为传统的拖动变大，更符合操作习惯。另外发现log数据变多可能会影响性能，加了定时清除功能。2017.6.11 记：同事@taoeer说界面太丑了，今天把系统自带的窗口边框去掉，自己写了一个，个人觉得要好看些了。发现了一个bug：项目复制时，如果操作频率超过1s，复制条数失控，目测是id时间戳不够精确导致，改为精确到毫秒，问题解决。顺便优化了进度展示形式。2017.6.7 记：自用了两周时间，感觉确实简化了操作，节约了时间，现在已经成为我日常工作好助手。上次修复的子进程自动崩溃的bug目前没再出现。今天添加了命令行目录修改功能；修复了因功能增加数据结构变动引发的某些功能无法运行的bug；添加了初始化引导界面及其它细节样式调整。2017.6.2 记：最近频现子进程自动停止问题，查看文档发现，exec回调数据有200kb限制，超出将导致进程崩溃。官方提供了maxBuffer属性可修改默认限制，我把maxBuffer设置为2Mb，问题解决，待长期观察。另外如果回调数据量大，官方推荐使用spawn。2017.6.1 记：早上给某项目添加自定义命令git pull,出现“git不是内部或外部命令”错误。虽然这是环境变量的锅，去系统高级设置环境变量的path属性上添加git.exe安装路径可以解决，我还是想把这个功能集成到软件里，于是做了添加临时环境变量功能，不会影响原有系统变量。2017.5.30 记：关闭子进程功能，经过反复修改，找到了相对可靠的解决方法：按项目分组，保存所有运行过的子进程pid，点击关闭时，遍历并kill该项目下所有子进程pid。2017.5.26 记：新增了两个重要功能：1.自定义命令，最多可添加4个; 2. 复制项目功能。另外在执行某些命令时，中文乱码问题复现，继续纠结。2017.5.25 记：再一次清理了多余的文件，体积瞬间减少了60%，再经过压缩，目前只有35Mb，比较满意。2017.5.23 记：添加了拖拽排序功能，强迫症福音。中文乱码问题，使用了笨方法暂时解决了。因为加入了新的三方模块，生成包又成功增加了30Mb......2017.5.22 记：今天新增了几个功能，做了比较大的优化，已经达到自己最初的期望。目前还有三个问题困扰我，一是应用发布后有300Mb,已经大大超过了我的承受范围，我期望能控制在100Mb内，这也是我没把生成的应用放上来的主要原因；二是中文乱码问题；三是进程关闭还有bug，目前没找到精确终止进程的方法。最新版本界面：下载地址：http://pan.baidu.com/s/1mi4w4wK源码地址：https://github.com/denghao123/ProjectHub