electron-toolKit:构建和启动Electron应用的工具包

2018 年 4 月 9 日 前端之巅 孙浩 译

electron 工具包是一个用于启动 Electron 应用的轻量级的、小型的、非常强大的开源应用程序。这款应用本身就是在 Electron 上运行的。electron 工具包可以在你现有的 Electron 项目中从 npm 安装和启动。UI 将引导你通过一系列工具来生成资源和产品工件,如图标、屏幕截图、安装程序、二进制文件——成功运行产品所需的一切。它可以帮助你发布你的应用,甚至生成完整的网站。这些工具可以节省几天、几周甚至几个月的工作量。这是一个早期预览版,更多的设置和工具有希望很快就会发布。

入门指南

electron 工具包 (ET) 是 npm 包的一个全新成员,它可以融入到命令行工作流中,同时提供用户界面。

如果你有一个 electron 项目,你可以在命令行中用下面的命令很容易地完成 electron 工具包的安装:

npm install electron-toolkit——save-dev

ET 非常轻量,体积也小。诀窍在于: 它知道你想要发布一个 Electron 应用程序,所以它不会带来它自己的 Electron 二进制文件,它只会找到并重用你的应用所使用的 Electron 版本。这也意味着,如果你想在一个项目之外独立地启动它,它可能便不会工作了……不过这其实也没什么,在此仅做提醒吧。

安装之后,将启动脚本添加到 package.json 中或使用下面的脚本直接启动:

"scripts":{
"electron-toolkit":electron/node_modules/electron-toolkit"
}

运行脚本:

npm run electron-toolkit

应用程序启动,你会看到下面这样的东西。

显示工具和类别的启动界面

electron 工具包附带了一套工具,可以让你的应用程序的启动变得尽可能简单和快捷。工具按类别分组,你会发现用于资源生成、安装程序创建、发布、网站创建等的工具。

资源

在此之前,你要先打开一个浏览器,访问一个网站,把公司的 logo 上传到其中一个缩略图标 web 服务中,下载一个包含了所有平台的图标的 zip(或 virus) 文件,并将其解压到恰当的文件夹下。现在这个过程点两下鼠标就能完成了。

Icons

图标生成器创建各种格式的图标

electron 工具包有一个内置的图标生成器。你可以将你的 logo 拖拽到 svg 中,生成一个 png 包,ico 用于 windows,icns 用于 mac——这些都是在本地离线完成的。ico 和 icns 的生成是由伟大的 png2 图标模块驱动的,它实现了所有的低级位操作、重新采样和图像缩放。Chromium 中的 canvas 元素实例可用于从可伸缩向量图形创建 png 图像。

截图和视频

资源类别包含另一个工具: 屏幕截图。

应用启动之前

使用屏幕截图工具,可以非常容易完成屏幕截图和视频录制,用于营销活动中的应用展示。你只需要点一下那个大大的蓝色按钮就可以了。

主应用启动后的 App-In-App 实时预览

electron 工具包使用上下文信息查找并启动正确的主应用程序。然后,它将与其他应用程序进程进行通信,以自动确定正确的应用程序窗口。接下来,它建立了另一个应用的视频流作为实时预览。当主应用程序被其他窗口部分或全部覆盖时,预览就会派上用场了。你可以设置主应用的用户界面,然后再点击 electron 工具包就可以开始录制或将截图远程保存到相册中了。

你的截图和视频显示在相册中

安装程序

有了图标,我们就可以转到下一个工具: 安装配置器。electron 工具包帮助配置 electron 构建器,并为多个目标创建安装程序。

它将使用来自package.json的信息生成和预填充一张带有最重要设置的表单。

安装配置器帮助你构建安装程序二进制文件

安装程序配置器在有焦点时,会并排的为每个设置显示一个描述,描述和链接是基于 electron 构建器的文档。一些内容填充框具有初步的验证逻辑并可以创建警告。比如,当 mac 被选为目标平台时,但应用类别缺失,便会有警告。

基于所选的平台,高级选项卡将包含针对 windows、mac 或 linux 的额外目标特定设置。强大的 electron 构建器有无数的设置和选项。UI 只显示那些对当前配置有意义的设置,并对其进行分组且解释其效果。

高级设置只在需要时显示

通过点击“Generate Installer”,electron 工具包将生成一个 electron 构建器的实例并开始打包。你不必离开这个工具。它将把输出流直接转发到你的用户界面中,并修改project.json以反映你所做的更改:如果这是你的首选方法,它将允许你以后从 CLI 中启动构建过程。

请注意,目前你可以在一台机器上配置多个目标,但是只能在各自的平台上构建二进制文件。

发布

现在我们已经有了生成的安装程序,我们已经准备好将我们的应用程序分发给数百万用户。这个任务的工具可以在发布类别中找到。这个类别显示了一个在线服务的列表,并提供了发布和托管生成的安装程序的列表。托管服务将确保可以在任何时间、任何地方从网络上下载你的二进制文件。有些 (理想情况下) 可以缩放必要的资源以分配给基础用户,并将二进制文件分发到边缘节点,以改善高速下载速度延迟和用户体验。

可用的托管服务

Launchfox

Launchfox 是我们正在进行的一项新服务。这项服务可以作为所有 Electron 相关工具的通道,毕竟它需要的不仅仅是你的本地计算机。

使用 Launchfox,你可以很容易地计划、跟踪和控制你的安装任务分配。像功能迭代、下载计数和区域过滤器等功能很快就可以实现。你可以保留自己的 DIY 解决方案,比如两个 GitHub repos(一个私有用于代码,一个公有用于解决问题和版本发布),或者是在 Heroku 上的 Nuts,并将其作为与现有解决方案集成的额外发行渠道。然而,我们的想法是在 Electron 的基础上创造和设计一个解决方案,使之成为最理想的解决方案。

如果你觉得这听起来很有趣,你可以在 launchfox 网站上留下你的邮件,可以获得关于即将发布的版本的通知。

网站

创建一个网站是件会花费过多时间的事情。现在已经有一些服务可以帮助你加速这个过程,让你将创建网站服务一起勾选,比如 Squarespace(“软件作为基于服务的跟踪和数据收集服务,其市场定位为集成内容管理系统的网站构建者”——维基百科)。

但是,如果你非常擅长网络技术,可能想要建立自己的网站,并在 GitHub 页面上托管它。你将花几天时间把一切放在一起,美化并让其可以响应,在不同的设备上测试它,优化页面加载时间,缩小资源大小,创建资源地图以便能够调试,打包脚本、资源,配置构建管道,考虑内容分发网络,为不同的屏幕分辨率和设备类型缩放和优化图像,注册域名,获得证书,设置 https,创建自动发布脚本,到处注册账户等等......

这需要很多时间。electron 工具包可以帮助你完成这个过程。使用这个工具,你可以在package.json中使用图标、屏幕截图、描述和产品信息引导一个漂亮的产品页面。

左边:实时网站预览,右边:插入内容和改变风格

该网站将为产品网站实现最佳体验,并为访问者提供一个简洁、吸引人的界面。你可以根据你的喜好来调整设置,重新设计它,使用设备模板让你的截图脱颖而出,并描述功能、添加客户评价、社交属性等等。

你可以在任何时候保存和继续你的工作。完成后,只需按“导出”将生成的页面保存在计算机上。该服务由 launchfox 提供,完全免费,也没有数据存储在我们的服务器上。导出的 webiste 是你的,你可以按照自己的方式定制和使用它。

你可以利用节省下来的时间和家人一起享受假期。

写在最后

Alina 和我希望你喜欢 electron 工具包,它会让你的产品启动更顺利、更有趣。告诉我们你正在创建的炫酷应用吧!

如果你想支持它的发展,可以获取其代码,为其加 star,并使用问题跟踪器提交 bug 或者提交新的功能需求:

https://github.com/PhilippLgh/electron-toolkit

查看原文:

https://hackernoon.com/introducing-electron-toolkit-the-electron-app-to-build-and-launch-electron-apps-6530450e257e

前端之巅

「前端之巅」是 InfoQ 旗下关注大前端技术的垂直社群。紧跟时代潮流,共享一线技术,欢迎关注。

关注公众号继续阅读更多 Electron 开发内容:

Electron开发,如何入坑?

Electron开发跨平台构建流程设计

Electron应用自动更新方案设计


课程推荐:

《9 小时搞定微信小程序开发》现已更新 35 讲,点击下方图片免费观看其中 10 讲。

登录查看更多
0

相关内容

JSON( Java Script Object Notation)是一种轻量级的资料交换语言,以文字为基础,且易于让人阅读。尽管 JSON 是在 JavaScript 的一個子集,但 JSON 是独立于语言的文本格式,並且采用了类似于 C 语言家族的一些习惯。
【干货书】《机器学习导论(第二版)》,348页pdf
专知会员服务
249+阅读 · 2020年6月16日
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
269+阅读 · 2020年6月10日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
70+阅读 · 2020年1月17日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
88+阅读 · 2019年11月25日
21个必须知道的机器学习开源工具!
AI100
13+阅读 · 2019年9月13日
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
去哪儿网开源DNS管理系统OpenDnsdb
运维帮
21+阅读 · 2019年1月22日
刚开始学编程?这几款小工具能让你事半功倍
宅男福音deepfakes开源了
AI前线
9+阅读 · 2018年1月31日
推荐|斯坦福的Stanford.NLP.NET:集合多个NLP工具
全球人工智能
3+阅读 · 2017年12月25日
Arxiv
21+阅读 · 2019年3月25日
Arxiv
3+阅读 · 2018年5月28日
Arxiv
4+阅读 · 2018年2月13日
Arxiv
11+阅读 · 2018年1月15日
Arxiv
4+阅读 · 2015年8月25日
VIP会员
相关资讯
21个必须知道的机器学习开源工具!
AI100
13+阅读 · 2019年9月13日
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
去哪儿网开源DNS管理系统OpenDnsdb
运维帮
21+阅读 · 2019年1月22日
刚开始学编程?这几款小工具能让你事半功倍
宅男福音deepfakes开源了
AI前线
9+阅读 · 2018年1月31日
推荐|斯坦福的Stanford.NLP.NET:集合多个NLP工具
全球人工智能
3+阅读 · 2017年12月25日
Top
微信扫码咨询专知VIP会员