内容主要来源于翻译官方文档
- 选用精简的模块
尽量使用精简通用的模块。当你选择所需模块是,在npm仓库中检索是否有star更多更精简或者更小的版本 - app启动后不要立即执行长耗时操作
检查在启动过后是否立即执行了大量任务。建议根据用户使用按需按队列执行操作 - 不要阻塞主进程
主进程很忙。它要与操作系统交互,控制UI线程,控制app中多个组件,因此不要把耗时长的任务放在主进程中
3.1 需要CPU重度参与的任务可以使用worker threads
3.2 尽量使用异步操作或者 remote 模块
3.3 尽量避免在主进程中进行I/O操作 - 使用js中的进程调度和计算优化
如requestIdleCallback() Web Workers
这类技术 - 不要使用electon内核中已有的polyfill
electron中内置了最新版的chrome浏览器内核,大部分JavaScript特性都不需要polyfill - 如无必要,不使用网络请求
与传统网站的优化类似,尽量减少网络请求。同时考虑把大文件打包在app中,减少大文件网络请求 - 打包压缩代码
可以采用传统的方案如webpack parcel rollup
等